在C++容器类型中,max_size()和size()函数通用于所有类型的容器,capcity()和reserve()函数值只适用于vector容器。

c.size()函数:返回容器c 中元素的个数

c.max_size()函数:返回容器C可容纳的最多元素个数

c.capacity()函数:返回容器c在需要重新分配更多存储空间之前能够存储的元素总数

c.reserve()函数:告诉容器c应该预留多少个元素的空间

vector 存在预分配机制。可以在元素不存在的情况下预分配一段空间,为以后的存储做准备。这段空间可以用reserve()调节。capacity()返回的值就是可以存放元素的个数。capacity() - size()就是下次重新进行空间分配前的预留元素个数。至于max_size()指的是一个vector结构可供储存元素的个数的上线,通常是由于寻址空间决定的

如下程序进行测试

vector<int> ivec;
 ivec.push_back(1);
 ivec.push_back(2);
 cout<<"capacity:"<<ivec.capacity()<<endl;
 cout<<"max_size:"<<ivec.max_size()<<endl;
 cout<<"size:"<<ivec.size()<<endl;

结果如下: