#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int i;
vector<int> iv(2, 9); // 容器大小为2,容器中的值全为9
cout << "size=" << iv.size() << endl; // 2
cout << "capacity=" << iv.capacity() << endl; // 2
iv.push_back(1);
cout << "size=" << iv.size() << endl; // 3
cout << "capacity=" << iv.capacity() << endl; // 4
iv.push_back(2);
cout << "size=" << iv.size() << endl; // 4
cout << "capacity=" << iv.capacity() << endl; // 4
iv.push_back(3);
cout << "size=" << iv.size() << endl; // 5
cout << "capacity=" << iv.capacity() << endl; // 8
iv.push_back(4);
cout << "size=" << iv.size() << endl; // 6
cout << "capacity=" << iv.capacity() << endl; // 8
for (i = 0; i < iv.size(); i++)
{
cout << iv[i] << ' ';
} // 9 9 1 2 3 4
cout << endl;
iv.push_back(5);
cout << "size=" << iv.size() << endl; // 7
cout << "capacity=" << iv.capacity() << endl; // 8
for (i = 0; i < iv.size(); i++)
{
cout << iv[i] << ' ';
} // 9 9 1 2 3 4 5
cout << endl;
iv.pop_back();
iv.pop_back();
cout << "size=" << iv.size() << endl; // 5
cout << "capacity=" << iv.capacity() << endl; // 8
iv.pop_back();
cout << "size=" << iv.size() << endl; // 4
cout << "capacity=" << iv.capacity() << endl; // 8
vector<int>::iterator ivite = find(iv.begin(), iv.end(), 1);
if(ivite!=iv.end()) iv.erase(ivite);
cout<<"size="<<iv.size()<<endl; // 3
cout<<"capacity="<<iv.capacity()<<endl; // 8
for(i=0;i<iv.size();++i)
cout<<iv[i]<<' '; // 9 9 2
cout<<endl;
ivite = find(iv.begin(), iv.end(), 2);
if(ivite != iv.end()) iv.insert(ivite, 3, 7); // 在2的位置之前插入3个7
cout<<"size="<<iv.size()<<endl; // 6
cout<<"capacity="<<iv.capacity()<<endl; // 8
for(i=0;i<iv.size();++i)
{
cout<<iv[i]<<' '; // 9 9 7 7 7 2
}
cout<<endl;
iv.clear(); // 清空
cout<<"size="<<iv.size()<<endl;
cout<<"capacity="<<iv.capacity()<<endl; // 8
}
// 可以看到容器的大小是以2的幂形式增长的,当size大小没有增长到容量大小是,容量大小不会自动增加
size=2
capacity=2
size=3
capacity=4
size=4
capacity=4
size=5
capacity=8
size=6
capacity=8
9 9 1 2 3 4
size=7
capacity=8
9 9 1 2 3 4 5
size=5
capacity=8
size=4
capacity=8
size=3
capacity=8
9 9 2
size=6
capacity=8
9 9 7 7 7 2
size=0
capacity=8