順序訪問vector的幾種方式
上一篇文章 初識 C++ vector
目錄
##1. 對向量a添加元素的幾種方式
1.1 對向量a添加元素的幾種方式
1.1.1 向向量a中添加元素
vector<int>a;
for( int i=0;i < 10; ++i )
{a.push_back(i);}
1.1.2 從數組a中選擇元素向向量b中添加
int a[6]={1,2,3,4,5,6};
vector<int> b;
for( int i = 0;i <= 4;++i )
{ b.push_back(a[i]); }
1.1.3 從現有向量中選擇元素向向量中添加
int a[6]={1,2,3,4,5,6};
vector<int>b;
vector<int>c(a,a+4);
for( vector<int>::iterator it=c.begin();it<c.end();++it )
{
b.push_back(*it);
}
1.1.4 從文件中讀取元素向向量中添加
ifstream in("data.txt");
vector<int>a;
for(int i;in>>i)
{a.push_back(i);}
1.1.5 常見錯誤賦值方式
vector< int >a;
for( int i=0;i < 10;++i )
{a[i]=i;}//下標只能用來獲取已經存在的元素
1.2 從向量中讀取元素
1.2.1 通過下標方式獲取
int a[6]={1,2,3,4,5,6};
vector<int>b(a,a+4);
for( int i = 0;i <= b.size()-1;++i )
{cout<<b[i]<<endl;}
1.2.2 通過迭代器方式讀取
int a[6]={1,2,3,4,5,6};
vector<int>b(a,a+4);
for( vector<int>::iterator it=b.begin();it!=b.end();it++ )
{cout<<*it<<" ";}
附加.幾個常用的算法
#include<algorithm>
//對a中的從a.begin()(包括它)到a.end()(不包括它)的元素進行從小到大排列
sort(a.begin(),a.end());
//對a中的從a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素爲1,3,2,4,倒置後爲4,2,3,1
reverse(a.begin(),a.end());
//把a中的從a.begin()(包括它)到a.end()(不包括它)的元素複製到b中,從b.begin()+1的位置(包括它)開始複製,覆蓋掉原有元素
copy(a.begin(),a.end(),b.begin()+1);
//在a中的從a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置
find(a.begin(),a.end(),10);