1.通用操作
1.1迭代器运算符
1 *it返回迭代器it所指元素的引用、即解引用指回去
2 反向迭代器坐标轴都是反的中心对称
3 迭代器类型 容器类型::iterator
反向迭代器类型 容器类型::reverse_iterator
#include <string> using namespace std; int main() { string tar="abcdefg"; // 迭代器类型是 容器类型::iterator for(string::iterator it=tar.begin();it!=tar.end();it++) { cout<<*it; } cout<<endl; //注意反向迭代器类型是 容器类型::reverse_iterator for(string::reverse_iterator it=tar.rbegin();it!=tar.rend();it++) { cout<<*it; } cout<<endl; for(string::reverse_iterator it=--tar.rend();it!=--tar.rbegin();it--) { cout<<*it; } } abcdefg gfedcba abcdefg
1.2迭代器通用跳步操作
1 next(it,n) 返回迭代器第n个后继迭代器
2 prev(it,n) 返回迭代器it第n个前驱迭代器
n为负数时换方向
#include<iostream> #include<vector> using namespace std; int main() { vector<int> tar{10,20,30,40,50,60}; vector<int>::iterator it=tar.begin(); vector<int>::iterator it1=next(it,-1); cout<<"*next(it,-1)="<<*it1; vector<int>::iterator it2=prev(it,-1); cout<<"*prev(it,-1)="<<*it2; it=tar.end(); vector<int>::iterator it3=next(it,-1); cout<<"*next(it,-1)="<<*it3; vector<int>::iterator it4=prev(it,-1); cout<<"*prev(it,-1)="<<*it4; } *next(it,-1)=134274166 *prev(it,-1)=20 *next(it,-1)=60 *prev(it,-1)=56438