vector的capacity()调用返回vector中最大能够存储的元素个数,也即在下一次需要扩充容量之前能容纳的元素个数。reserve会使容器在必要的时候增长,以便容纳制指定数目的元素。
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
vector<int> v, u;
v.reserve(5);
cout << v.capacity() <<endl; //5
v.resize(10);
cout << v.capacity() <<endl; //10
cout << "Initial capaciry of u: " << u.capacity() <<endl;
for(int i = 0; i < 40; ++i)
{
u.push_back(i);
cout << "Now capacity is :" << u.capacity() <<" i: "<<i<<endl;
}
return 0;
}
结果:
5
10
Initial capaciry of u: 0
Now capacity is :1 i: 0
Now capacity is :2 i: 1
Now capacity is :4 i: 2
Now capacity is :4 i: 3
Now capacity is :8 i: 4
Now capacity is :8 i: 5
Now capacity is :8 i: 6
Now capacity is :8 i: 7
Now capacity is :16 i: 8
Now capacity is :16 i: 9
Now capacity is :16 i: 10
Now capacity is :16 i: 11
Now capacity is :16 i: 12
Now capacity is :16 i: 13
Now capacity is :16 i: 14
Now capacity is :16 i: 15
Now capacity is :32 i: 16
Now capacity is :32 i: 17
Now capacity is :32 i: 18
Now capacity is :32 i: 19
Now capacity is :32 i: 20
Now capacity is :32 i: 21
Now capacity is :32 i: 22
Now capacity is :32 i: 23
Now capacity is :32 i: 24
Now capacity is :32 i: 25
Now capacity is :32 i: 26
Now capacity is :32 i: 27
Now capacity is :32 i: 28
Now capacity is :32 i: 29
Now capacity is :32 i: 30
Now capacity is :32 i: 31
Now capacity is :64 i: 32
Now capacity is :64 i: 33
Now capacity is :64 i: 34
Now capacity is :64 i: 35
Now capacity is :64 i: 36
Now capacity is :64 i: 37
Now capacity is :64 i: 38
Now capacity is :64 i: 39
--------------------------------
Process exited after 0.05695 seconds with return value 0
请按任意键继续. . .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)