順序訪問vector的幾種方式

順序訪問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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章