这里主要是对vector容器的一些常见应用的总结。至于vector的构造函数及初始化可以参考http://blog.csdn.net/lsh_2013/article/details/21191289,这里不再赘述。
元素的遍历
用迭代器访问vector元素
#include <vector> #include <iostream> using namespace std; int main(void) { vector<int> v; v.push_back(42); v.push_back(51); v.push_back(69); vector<int>::iterator i,iend; iend=v.end(); int j; for(i=v.begin(),j=0; i!=iend; i++,j++) cout<<"v[" << j << "] = " << *i<< endl; return 0; }
元素的插入
iterator insert(iteratorpos, const T& x);//在迭代器pos所指的元素前面插入一个元素x
#include <vector> #include <iostream> using namespace std; int main(void) { vector<int> v; v.push_back(6); v.push_back(7); v.push_back(8); v.push_back(10); v.insert(v.begin() + 3, 9); //在元素的前面插入 v.insert(v.begin(), 5); //插入为首元素 v.insert(v.end(), 11); //插入为末元素 for(int i = 0; i < v.size(); i++) cout << "v[" << i << "] = " << v[i] << endl; return 0; }
元素的删除
1)iterator erase(iterator pos);//删除迭代器pos所指的元素
2)iterator erase(iterator first, iterator last);//删除迭代区间[first,last)的所有元素
#include <iostream> #include <vector> using namespace std; int main () { vector<int> myvector; for (int i=1; i<=10; i++) myvector.push_back(i); //删除第个元素 myvector.erase (myvector.begin()+5); //删除前个元素 myvector.erase (myvector.begin(),myvector.begin()+3); cout << "myvector contains:"; for (unsigned i=0; i<myvector.size(); ++i) cout << ' ' << myvector[i]; cout << '\n'; return 0; }
元素的反向遍历
#include <vector> #include <iostream> using namespace std; int main(void) { vector<int> v; v.push_back(1); v.push_back(3); v.push_back(5); v.push_back(7); v.push_back(9); vector<int>::reverse_iterator ri,riend; riend=v.rend(); for(ri=v.rbegin();ri!=riend;ri++) cout << *ri << endl; return 0; }
Vector的交换
void swap(vector& x); //两个vector容器的元素交换
#include <iostream> #include <vector> using namespace std; int main () { vector<int> v1 (2,10); //10 10 vector<int> v2 (3,30); //30 30 30 cout << "v1 contains:"; for (unsigned i=0; i<v1.size(); i++) cout << ' ' << v1[i]; cout << '\n'; cout << "v2 contains:"; for (unsigned i=0; i<v2.size(); i++) cout << ' ' << v2[i]; cout << '\n'; v1.swap(v2);//交换 cout<<"交换后"<<endl; cout << "v1 contains:"; for (unsigned i=0; i<v1.size(); i++) cout << ' ' << v1[i]; cout << '\n'; cout << "v2 contains:"; for (unsigned i=0; i<v2.size(); i++) cout << ' ' << v2[i]; cout << '\n'; return 0; }
其他常用的函数
1)bool empty();
//判断vector容器是否为空。若容器没有一个元素则返回true,否则返回false。
2)size_type size();
//当前vector容器的实际元素个数。
3)size_typemax_size();
//系统所允许的vector容器的最大元素个数。
4)size_typecapacity();
//当前可容纳vector元素的个数。
5)reference front()
//vector容器的首元素(引用),要求vector不为空。
6)reference back();
//返回vector容器的末元素(引用),要求vector不为空。
7)void pop_back();
//删除末尾的一个容器元素。
此为本人原创,转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/46731331
版权声明:本文为博主原创文章,未经博主允许不得转载。