《C++标准程序库》 第6章 STL Container

vector 的定义如下(deque\list 类似):

namespace std {
    template <class T, class Allocator = allocator<T> > class vector;
}

第二个参数是用来定义内存模型,缺省使用C++标准库提供的 allocator。

其 capacity() 方法返回 vector 实际能够容纳的元素数量,如果超越这个数量,vector 就有必要重新配置内部存储器,和 vector 元素相关的 references\pointers\iterators 都会失效,另外内存重新分配也很耗时间。所以可以使用 reserve() 来预设一定的容量,避免一再重新配置内存。

 

set 的定义如下(multiset 类似):

namespace std {
    template<class T, class Compare = less<T>, class Allocator = allocator<T> > class set;
}

 

map 的定义如下(multimap 类似):

namespace std {
    template<class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key,T> > > class map;
}

 

posted @ 2013-05-15 14:31  轻典  阅读(184)  评论(0编辑  收藏  举报