vector的reserve(),resize(),capacity()
来源:互联网 发布:云计算的历史 编辑:程序博客网 时间:2024/05/01 06:50
1:vetor<int> a;
a.reserve(100);
代表预留空间是100,capacity()的返回值也是就100;
vector功能和数组相似,capacity类似于我们通常预设定的数组的最大元素个数,如a[10],代表的就是a数组最多10个元素;
代码如下:
// vector::reserve#include <iostream>#include <vector>int main (){ std::vector<int>::size_type sz; std::vector<int> foo; sz = foo.capacity(); std::cout << "making foo grow:\n"; for (int i=0; i<100; ++i) { foo.push_back(i); if (sz!=foo.capacity()) { sz = foo.capacity(); std::cout << "capacity changed: " << sz << '\n'; } } std::vector<int> bar; sz = bar.capacity(); bar.reserve(100); // this is the only difference with foo above std::cout << "making bar grow:\n"; for (int i=0; i<100; ++i) { bar.push_back(i); if (sz!=bar.capacity()) { sz = bar.capacity(); std::cout << "capacity changed: " << sz << '\n'; } } return 0;}
输出的结果:making foo grow:
capacity changed: 1
capacity changed: 2
capacity changed: 4
capacity changed: 8
capacity changed: 16
capacity changed: 32
capacity changed: 64
capacity changed: 128
making bar grow:
capacity changed: 100
2:a.resize(n,m) or a.resize(n)
n代表的就是重新设置vector元素的多少
n大于你之前的size()时,会加上 n-size() 个元素值为m的元素(若m没有,就设置为默认值0);
n小于你之前的size()时,会删除 下标为 n~size()-1 的元素。
0 0
- vector的reserve(),resize(),capacity()
- Vector的使用:resize、size、reserve、capacity
- C++的vector中的resize,reserve,size(),capacity()
- vector的reserve和resize以及capacity和size
- STL中vector的capacity、size、reserve、resize
- C++ vector中size/resize和capacity/reserve的区别
- 深入浅出vector之resize()/reserve(), size()/capacity()
- 深入浅出vector之resize()/reserve(), size()/capacity()
- C++9.4 vector容器的自增长(size、capacity、reserve)
- C++学习笔记之——vector的size和capacity、resize和reserve的区别
- vector容器assign(),capacity(),size(),swap(),get_allocator(),max_size(),reserve(),resize()
- vector中的 size和 capacity和 reserve和 resize
- c++ vector中resize、reserve、push_back和capacity
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- HDU 1214
- 234Palindrome Linked List
- codis的proxy层HA
- Android Service 两种启动方式的区别
- 高精度问题之大数相加
- vector的reserve(),resize(),capacity()
- 在Eclipse里自动导入相应包的类名的快捷键
- scikit-learn:3.2. Grid Search: Searching for estimator parameters
- RHEL十一(归档文件并在系统间复制文件)
- Moving Tables-贪心
- ZOJ 3888 Twelves Monkeys (预处理+优先队列)
- Android系列--DOM、SAX、Pull解析XML
- Manacher算法
- [移动] Android推送方案分析(MQTT/XMPP/GCM)