代碼:
1 #include <iostream> 2 #include<vector> 3 #include<iterator> 4 #include<algorithm> 5 //#include<bits/stdc++.h> 6 using namespace std; 7 void show(vector<int>& v) 8 { 9 for(int i=0; i<(int)v.size(); i++) 10 { 11 cout<<v[i]<<" "; 12 } 13 cout<<endl; 14 } 15 int main() 16 { 17 //遍歷vector 18 //for循環遍歷 19 //迭代器輸出 20 //v.at(pos);特定位置的引用 21 vector<int> v; 22 for(int i=0; i<10; i++) 23 v.push_back(i); 24 for(int i=0; i<(int)v.size(); i++) 25 cout<<v[i]<<" ";//0 1 2 3 4 5 6 7 8 9 26 cout<<endl; 27 vector<int>::iterator iter=v.begin();//正向迭代器 28 for(;iter!=v.end();iter++){//*iter = 100 可以用指針 對 迭代器 進行修改操作 29 cout<<*iter+100<<" ";//100 101 102 103 104 105 106 107 108 109 30 31 } 32 cout<<endl; 33 vector<int>::reverse_iterator itera=v.rbegin();//反向迭代器 // 是從end-1開始的,end指向的不是最后一個元素 34 for(;itera!=v.rend();itera++){//反向迭代器從右往左+ 從左往右 - 35 cout<<*itera+100<<" ";//109 108 107 106 105 104 103 102 101 100 36 } 37 cout<<endl; 38 show(v);//0 1 2 3 4 5 6 7 8 9 39 reverse(v.begin(),v.end());//反轉 vector 40 show(v);//9 8 7 6 5 4 3 2 1 0 41 reverse(v.begin()+1,v.begin()+8);//反轉部分元素 42 show(v);//9 2 3 4 5 6 7 8 1 0 43 cout<<v.front()<<endl;//返回首元素的引用 44 cout<<v.back()<<endl;//返回尾元素的引用 45 cout<<v.at(2)<<endl;//返回2位置元素的引用 46 cout<<*v.begin()<<endl;//v.begin()是迭代器需要用 *v.begin()取出來 47 cout<<*(v.end()-1)<<endl;//返回向量尾指針,指向向量最后一個元素的下一個位置(沒有元素,v.end()-1前面那個是最后一個數據) 48 cout<<*v.rbegin()<<endl;//反向迭代器,指向最后一個元素v.end()-1 49 cout<<*(v.rend()-1)<<endl;//反向迭代器,v.rend()指向第一個元素之前的位置 v.begin()-1; v.rend()-1是往前走的 -1-->0 v.rend()+1 是往后走的-1-->-2 50 return 0; 51 }
輸出:
1 0 1 2 3 4 5 6 7 8 9 2 100 101 102 103 104 105 106 107 108 109 3 109 108 107 106 105 104 103 102 101 100 4 0 1 2 3 4 5 6 7 8 9 5 9 8 7 6 5 4 3 2 1 0 6 9 2 3 4 5 6 7 8 1 0 7 9 8 0 9 3 10 9 11 0 12 0 13 9