vector是STL的动态数组,在运行时能根据需要改变数组大小。
头文件: #include < vector > ;
1. 定义 :
int 型数组 :
vector < int > a ; //默认初始化,a为空
vector < int > b (a) ; //用a定义b,即定义一个与数组a相等的b数组
vector < int > a(100) ; //定义a数组的大小为100 ,其值为0
vector < int > a(100, 6) ; //定义a数组的大小为100 ,其值为6
string 型数组 :
vector< string > a(10, "NULL") ; //定义a数组的大小为10,其值为NULL
vector< string > a(10, "Hello") ; //定义a数组的大小为10,其值为Hello
vector< string > b( a.begin(), a.end() ) ; //定义一个数组b,其值复制a数组
结构体数组 :
结构体:struct node { int x,int y };
vector < node > a ; //定义结构体数组a
多维数组 :
vector < int > a[ MAXN ] ; //二维数组a,第一维大小为固定数值MAXN( 自己设定大小 )
常见操作 :
#include < vector >
vector< int > a ;
int x;
int i,j,n;
a.push_back(x); // a[0]=x,即尾部插入
int len = a.size(); //元素个数
bool Is_empty =a.empty();//判断数组是否为空
cout << a[0] << endl ; //打印第一个元素
a.insert(a.begin()+i,x);//在第i个元素前面插入x
a.insert(a.end(),10,5);//尾部多个元素插入,在尾部插入10个5的元素
a.erase(a.begin()+i);//删除第i+1个元素
a.erase(a.begin()+i,a.begin()+j);//删除[i,j-1]的元素
a.resize(n);//调整数组大小为n
a.clear();//清空数组
reverse( a.begin(),a.end() );//翻转数组
sort( a.begin(),a.end() ); //从小到大排序,sort函数应用
使用迭代器访问元素 :
vector<int>::iterator it;// auto it ;
for(it=a.begin();it!=a.end();it++)
cout<<*it<<endl;
或者:
for( auto it : a){
cout << it << endl ;
}