属性 | 表达 |
双向迭代器是默认可构造,可复制分配和可破坏的。 | A x; A y(x); y = x; |
可以使用相等或不相等运算符进行比较。 | x == y x!= y |
可以取消引用,这意味着我们可以使用取消引用运算符(*)来检索值。 | * x |
可以将可变迭代器作为左值取消引用。 | * x = t |
双向迭代器可以递增。 | x ++ ++ x |
双向迭代器也可以递减。 | x-- --x |
#include <iostream> #include<iterator> #include<vector> using namespace std; int main() { vector<int> v{1,2,3,4,5}; // vector declaration vector<int> ::iterator itr; // iterator declaration vector<int> :: reverse_iterator ritr; // reverse iterator declaration for(itr = v.begin();itr!=v.end();itr++) { cout<<*itr<<" "; } cout<<'\n'; for(ritr = v.rbegin();ritr!= v.rend();ritr++) { cout<<*ritr<<" "; } return 0; }
1 2 3 4 5 5 4 3 2 1
A==B; A!=B;
*A = t; t = *A
A++; ++A;
A--; --A;
A==B; // valid A<=B; // invalid
A+2; // invalid A+1; // invalid