LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 677|回复: 2

vector的增长问题

[复制链接]
发表于 2006-3-21 17:14:40 | 显示全部楼层 |阅读模式
c++ primer中说在插入第一个元素后,ivec的容量是256,长度为1
但是我这个小程序运行结果却与此不符,不知为何?
请各位高手给予解释!
多谢^_^!

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    /* 测试size,capacity*/
    vector< int > ivec;
    if ( ivec.empty() == true )
            cout << "ivec is empty" << endl;
    cout << "ivec:size: " << ivec.size()
            << " capacity:" << ivec.capacity() << endl;
    for ( int ix = 0; ix < 5; ++ix ) {
        ivec.push_back( ix );
        cout << "ivec:size: " << ivec.size()
                << " capacity: " << ivec.capacity() << endl;
    }
}

运行结果:
ivec is empty
ivec:size: 0 capacity:0
ivec:size: 1 capacity: 1
ivec:size: 2 capacity: 2
ivec:size: 3 capacity: 4
ivec:size: 4 capacity: 4
ivec:size: 5 capacity: 8
发表于 2006-3-21 17:39:10 | 显示全部楼层
这应该不会影响你的程序吧
难道你要依赖这种内部设置?
回复 支持 反对

使用道具 举报

发表于 2006-3-21 22:39:48 | 显示全部楼层
C++ HowTo
上说vector是按照需要从1开始以2倍的速率增长的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表