vector比较关键的成员函数有size (), capacity (), resize (), reserve ()这四个
size()表示数组内部存在的元素多少,你push进去几个就是几个
capacity()表示数组的容量大小,你在数组中开辟的内存空间有几个就是多大
resize()为函数重新设计size的多少,resize的数量大于size()就增加默认值,少了就直接删除元素
reserve()为函数申请内存空间,只是扩大内存空间(容量)并没有增加元素的多少,即只对size()有影响,对capacity()没有影响。但是要注意reserve只对比他大的容量扩充内存,比他小的也不会缩小内存。
#include <vector>
#include <iostream>
using namespace std;
int main ()
{
vector <int> vec;
vec.push_back (1);
vec.push_back (2);
vec.push_back (3);
cout << vec.size () << endl;
cout << vec.capacity () << endl << endl;
vec.resize (8);
cout << vec.size () << endl;
cout << vec.capacity () << endl;
for (int i = 0; i < vec.size (); i++) cout << vec [i] << " "; cout << endl<< endl;
vec.reserve (16);
cout << vec.size () << endl;
cout << vec.capacity () << endl;
for (int i = 0; i < vec.size (); i++) cout << vec [i] << " "; cout << endl << endl;
vec.resize (2);
cout << vec.size () << endl;
cout << vec.capacity () << endl;
for (int i = 0; i < vec.size (); i++) cout << vec [i] << " "; cout << endl << endl;
vec.reserve (1);
cout << vec.size () << endl;
cout << vec.capacity () << endl;
for (int i = 0; i < vec.size (); i++) cout << vec [i] << " "; cout << endl << endl;
}