代码:
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 }
输出:
0 1 2 3 4 5 6 7 8 9 100 101 102 103 104 105 106 107 108 109 0 9 2 0 9 9 0
原文:https://www.cnblogs.com/NirobertEinteson/p/11960654.html