二维 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