STL的vector :动态数组,不用指定数组大小
定义方式
(1)vector< 类型 > 标识符 ;
(2)vector< 类型 > 标识符 (最大容量) ;
(3)vector< 类型 > 标识符 (最大容量,初始所有值);
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void one_vector()
{
const int N = 5;
vector<int> one;
int num[N]={4,5,2,1,6};
for(int i=0;i<N;i++)
one.push_back(num[i]);
//遍历方式①
int one_len = one.size();
for(int i=0;i<one_len;i++)
cout<<one[i]<<" ";
cout<<endl;
sort(one.begin(),one.end()); //默认升序排序
reverse(one.begin(),one.end()); //数组倒序,也可以用来->降序排序
//遍历方式②
for(vector<int>::iterator it=one.begin();it!=one.end();it++)
cout<<*it<<" ";
//查找,find(起始地址,终止地址,值)
vector<int>::iterator one_find;
one_find = find(one.begin(),one.end(),num[0]);
if( one_find != one.end() )
cout<<"找到"<<*one_find<<endl;
}
void two_vector()
{
const int N = 4;
const int MAX = 10;
vector<int> two[MAX]; //二维
int num[N]={4,5,2,1};
for(int i=0;i<N-1;i++)
two[0].push_back(num[i]);
two[1].push_back(num[N-1]);
//直接当二维数组使用
int index = 0;
for(int i=0;i<two[index].size();i++)
cout<<two[index][i]<<" ";
cout<<endl;
}
int main()
{
one_vector();
two_vector();
//利用数组初始化
int init[]={6,1,2,5,4};
vector<int> ive(init,init+5);
int ive_len = ive.size();
for(int i=0;i<ive_len;i++)
cout<<ive[i]<<" ";
cout<<endl;
return 0;
}