教c++时候的一些notes (3)
2007-07-01 08:12
99 查看
vector<int> v(10);
这个时候, size应该是10, 也就是说,你可以做以下的操作,没有任何问题
这个时候,可以做如下的操作
v[0]=10;
v[9]=10;
但是,如果做
v[10]=1;
就会有很大的问题。
capacity的size完全取决lib的实现, 也许有的lib会把capacity 申请为2倍,这些都是由算法决定的。如果不去实现一个vector, 可以不用考虑capacity. capacity是 当前vector到底申请了多少空间来维护这个vector.
另外resize()会改变size, 同时也会影响capacity.比如
v.resize(20);
v[11]=10;
v[10]=10;
就没有什么问题.
reserve()会改变capacity, 但是不会影响size, 这个function会影响到vector内部算法。
总之,如果是应该,就不要管capacity. 就信任library function 吧
这个时候, size应该是10, 也就是说,你可以做以下的操作,没有任何问题
这个时候,可以做如下的操作
v[0]=10;
v[9]=10;
但是,如果做
v[10]=1;
就会有很大的问题。
capacity的size完全取决lib的实现, 也许有的lib会把capacity 申请为2倍,这些都是由算法决定的。如果不去实现一个vector, 可以不用考虑capacity. capacity是 当前vector到底申请了多少空间来维护这个vector.
另外resize()会改变size, 同时也会影响capacity.比如
v.resize(20);
v[11]=10;
v[10]=10;
就没有什么问题.
reserve()会改变capacity, 但是不会影响size, 这个function会影响到vector内部算法。
总之,如果是应该,就不要管capacity. 就信任library function 吧
相关文章推荐
- 教C++的时候的一些notes (1)
- 教C++的时候的一些notes (2)
- c++的一些特例,学习的时候需要注意!
- C++ 函数参数是引用和指针的时候的一些注意点。
- C++中经常遇到的一些小问题 --notes
- c与c++的一些区别
- 任何时候都适用的20个C++技巧
- c++中一些头文件的用法
- 使用Code Blocks编写C++程序遇到的一些问题
- 工作的时候记录的一些链接
- 关于C/C++的一些链接
- C++:boost::bind的一些用法
- 关于volatile的一些思考C++
- C/C++ 常用的一些函数
- 推荐一些C++经典书籍
- C/C++运行中的一些问题及其解决
- C/C++ 关于 for循环 的第二个表达式右侧非常量的时候
- C++的一些基础知识
- 在浏览一些网站的时候发现 一个问题,好多没有搜索功能
- 多重异常的时候要注意的一些问题