在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。
1 基本操作
(1)头文件#include<vector>.
(2)创建vector对象,vector<int> vec;
(3)尾部插入数字:vec.push_back(a);
(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。
(5)使用迭代器访问元素.
vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
(8)向量大小:vec.size();
(9)清空:vec.clear();
具体操作见代码,可用。
#include <vector> #include <algorithm> #include <iostream> #include<string> using namespace std; //vector是每次迭代时都动态重新申请内存并且销毁之前已经存在的内存 bool Comp(const int &a,const int &b) { return a>b; }//sort的下降函数,默认升序排列 int main( ) { vector <char> v1; vector <char>::iterator Iter1; int i; string s; cin>>s; for ( i = 0 ; i < s.length() ; i++ ) { v1.push_back( s[i] );//从尾部插入 } for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 ; cout <<endl; //reverse (v1.begin( ), v1.end( ) ); //sort(v1.begin(),v1.end(),greater<char>());详情见sort用法 //v1.assign(5,'w');重新赋予容器5个'w' for ( Iter1 = v1.begin(); Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 ;//注意* cout<< endl; for ( Iter1 = v1.begin(),i=0;Iter1 != v1.end( );i++,Iter1++ ) cout <<v1[i];//注意* //两种输出策略 //vector<char>::iterator pos; //pos=v1.begin(); //因为直接用迭代器失效,所以重新声明下 //v1.erase(++pos); //删除制定位置 //v1.erase(pos,pos+3); v1.resize(5); //将元素数量改成5,如果v1变大,则多的按默认走,字符的默认为空 //v1.resize(5,'p'); //将元素数量改成5,如果v1变大,则多的赋值成'p' //v1.clear(); //清空 for(Iter1=v1.begin(),i=0;Iter1 != v1.end();i++,Iter1++) { cout<<"v1中的"<<i<<"值:"<<v1[i]<<endl; } cout<< endl; }