STL中vector使用
2015-05-15 16:30
169 查看
#include <vector> #include <iostream> #include <algorithm> using namespace std; int main(){ int i; vector<int>iv(2, 9); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; iv.push_back(1); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; iv.push_back(2); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; iv.push_back(3); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; iv.push_back(4); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; for (int i = 0; i < iv.size(); ++i){ cout << iv[i] << ' '; } cout << endl; iv.push_back(5); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; for (int i = 0; i < iv.size(); ++i){ cout << iv[i] << ' '; } cout << endl; iv.pop_back(); iv.pop_back(); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; iv.pop_back(); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; vector<int>::iterator ivite = find(iv.begin(), iv.end(), 1); if (ivite != iv.end()) iv.erase(ivite); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; for (int i = 0; i < iv.size();++i) { cout << iv[i] << " "; } cout << endl; ivite = find(iv.begin(), iv.end(), 2); if (ivite != iv.end()) iv.erase(ivite); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; for (int i = 0; i < iv.size(); ++i) { cout << iv[i] << " "; } cout << endl; iv.clear(); cout << "Size = " << iv.size() << endl; cout << "capacity = " << iv.capacity() << endl; getchar(); getchar(); return 0; }当我们使用push_back插入元素的时候,函数首先会检查是否还有备用空间,如果有就直接在备用空间上调用构造函数,并调整迭代器finish,使vector变大,如果没有足够的空间,就重新配置,移动数据,然后释放源空间
相关文章推荐
- STL map/ unordered_map/ vector内存使用实验
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- Linux环境下stl库使用(vector)
- STL中list,vector,deque,map,set区别、联系和使用场景
- C++ STL入门教程(1)——vector(向量容器)的使用(附完整程序代码)
- 如何使用istream_iterator将cin转到vector? (C/C++) (STL)
- STL:使用string、vector、complex和limits
- 标准模板库(STL)使用---vector
- C++ STL容器的使用方法(vector、queue、list、set、map)
- STL中的容器使用比较(string vector list deque set map)
- leetcode-27. Remove Element--STL Vector remove()和erase()的使用
- C++:[STL]浅谈Allocator以及详解STL之sequence container的操作及使用(vector)
- STL中list,vector,deque,map,set区别、联系和使用场景
- STL源码学习--vector使用方法总结
- (原創) 如何删除std::vector内的element?(使用find) (C/C++) (STL)
- STL的vector使用精讲
- 【STL】滤波算法:使用vector容器
- 20170725使用linux的GDB打印STL(vector,map,set..................)
- C++ Vector 与STL Iterator的使用
- STL中的list和vector使用(一)更正