创建一个vector对象vector a;后, vector对象a的size和capacity都是0。
当插入第一个元素后,size和capacity都变为1
当插入第二个元素后,size和capacity都变为2
当插入第三个元素后,size变为3, 由于capacity为2,小于3, 则capacity=capacity*2,变成4
……
当插入第五个元素后,size变为5, 由于capacity为4,小于5, 则capacity=capacity*2,变成8
#include <iostream>
#include <vector>
using namespace std;
void print_vector_info(vector<int> &a)
{
cout << "size = " << a.size() << endl;
cout << "capacity = " << a.capacity() << endl;
}
int main(int argc, char *argv[])
{
vector <int> a;
print_vector_info(a);
a.push_back(1);
print_vector_info(a);
a.push_back(2);
print_vector_info(a);
a.push_back(3);
print_vector_info(a);
a.push_back(4);
print_vector_info(a);
a.push_back(5);
print_vector_info(a);
return 0;
}
编译运行:
size = 0
capacity = 0
size = 1
capacity = 1
size = 2
capacity = 2
size = 3
capacity = 4
size = 4
capacity = 4
size = 5
capacity = 8