vector<int> ivec;
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//0,0
ivec.push_back(10);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//1,1
ivec.push_back(20);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//2,2
ivec.push_back(30);
cout << "大小:" << ivec.size() << ",容量"<<ivec.capacity() << endl;//3,3
ivec.push_back(40);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//4,4
ivec.push_back(50);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//5,5
ivec.push_back(60);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//6,6
ivec.push_back(70);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//7,9
ivec.push_back(80);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//8,9
ivec.push_back(40);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//9,9
ivec.push_back(40);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//10,13
ivec.push_back(1);
ivec.push_back(1);
ivec.push_back(1);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//13,13
ivec.push_back(1);
cout << "大小:" << ivec.size() << ",容量" << ivec.capacity() << endl;//14,19
capacity() 和size()区别:
size()为容器实际元素的个数
capacity()为容器目前所能容纳的最大元素个数,一旦容量不够了,就会重新分配一段连续的比原有空间大的内存大小,将原来的元素拷贝到新的容器空间内,继续添加,每一次容量的增长50%
reserve(n)
按需申请n个大小的容量,此时容量capacity就变为n
本文通过实例演示了C++标准库中vector容器的size()与capacity()的区别。size()表示当前元素数量,而capacity()则显示了容器能够容纳的最大元素数量。随着元素增加,capacity会动态调整,通常增长50%。


被折叠的 条评论
为什么被折叠?



