X-man

导航

vector的capacity增长方式

     vector的capacity()调用返回vector中最大能够存储的元素个数,也即在下一次需要扩充容量之前能容纳的元素个数。reserve会使容器在必要的时候增长,以便容纳制指定数目的元素。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> u;
    cout << "Initial capaciry of u: " << u.capacity() << "\n";
    for(int i = 0; i < 40; ++i)
    {
        u.push_back(i);
        cout<<"size is "<<u.size()<<" ";
        cout<<"Now capacity is :" << u.capacity() << "\n";
    }
    return 0;
}

 

运行环境:win7 32bit codeblocks

Initial capaciry of u: 0
size is 1 Now capacity is :1
size is 2 Now capacity is :2
size is 3 Now capacity is :4
size is 4 Now capacity is :4
size is 5 Now capacity is :8
size is 6 Now capacity is :8
size is 7 Now capacity is :8
size is 8 Now capacity is :8
size is 9 Now capacity is :16
size is 10 Now capacity is :16
size is 11 Now capacity is :16
size is 12 Now capacity is :16
size is 13 Now capacity is :16
size is 14 Now capacity is :16
size is 15 Now capacity is :16
size is 16 Now capacity is :16
size is 17 Now capacity is :32
size is 18 Now capacity is :32
size is 19 Now capacity is :32
size is 20 Now capacity is :32
size is 21 Now capacity is :32
size is 22 Now capacity is :32
size is 23 Now capacity is :32
size is 24 Now capacity is :32
size is 25 Now capacity is :32
size is 26 Now capacity is :32
size is 27 Now capacity is :32
size is 28 Now capacity is :32
size is 29 Now capacity is :32
size is 30 Now capacity is :32
size is 31 Now capacity is :32
size is 32 Now capacity is :32
size is 33 Now capacity is :64
size is 34 Now capacity is :64
size is 35 Now capacity is :64
size is 36 Now capacity is :64
size is 37 Now capacity is :64
size is 38 Now capacity is :64
size is 39 Now capacity is :64
size is 40 Now capacity is :64

 

posted on 2014-08-08 19:05  雨钝风轻  阅读(721)  评论(0编辑  收藏  举报