二维 vector解决思路
二维 vector
typedef vector<string, allocator<string> > StringVector ;
这句代码具体是什么意思?哪位高手能详细讲一下吗?
是不是说建立了一个二维的vector容器类,这个容器里放的是string类型的数据,那么allocator又有什么用呢?从百科查allocator是类模板,还是不理解。
------解决方案--------------------
StringVector 是一个装string的vector容器
allocator<string>是string类型默认的内存分配方式,不需要关注
------解决方案--------------------
typedef vector<string, allocator<string> > StringVector ;
给vector<string, allocator<string> >容器取一个别名叫StringVector,并不是建立一个二维的vector,c++中好多容器都可以有allocator<T>这样的参数,如map、set等。
allocator类可以使程序的设计将对象创建中的内存分配和数据构造分离开, 也就是说, 你可以先通过allocator对象分配一块内存, 这块内存中存储了一个并未初始化的对象, 然后再通过allocator对象对其进行构造.
例如:
allocator<string> as;
//定义了一个用来管理string对象内存的allocator对象
string* pstr = as.allocate(1);
//使用allocate成员函数分配"一个"的string对象的内存
------解决方案--------------------
http://club.topsage.com/thread-544982-1-1.html
typedef vector<string, allocator<string> > StringVector ;
这句代码具体是什么意思?哪位高手能详细讲一下吗?
是不是说建立了一个二维的vector容器类,这个容器里放的是string类型的数据,那么allocator又有什么用呢?从百科查allocator是类模板,还是不理解。
------解决方案--------------------
StringVector 是一个装string的vector容器
allocator<string>是string类型默认的内存分配方式,不需要关注
------解决方案--------------------
typedef vector<string, allocator<string> > StringVector ;
给vector<string, allocator<string> >容器取一个别名叫StringVector,并不是建立一个二维的vector,c++中好多容器都可以有allocator<T>这样的参数,如map、set等。
allocator类可以使程序的设计将对象创建中的内存分配和数据构造分离开, 也就是说, 你可以先通过allocator对象分配一块内存, 这块内存中存储了一个并未初始化的对象, 然后再通过allocator对象对其进行构造.
例如:
allocator<string> as;
//定义了一个用来管理string对象内存的allocator对象
string* pstr = as.allocate(1);
//使用allocate成员函数分配"一个"的string对象的内存
------解决方案--------------------
http://club.topsage.com/thread-544982-1-1.html