在这里,我们将看到C ++中双向迭代器的概念。
双向迭代器支持正向迭代器的所有功能,还支持前缀和后缀减量运算符。
这种类型的迭代器可以在两个方向上访问元素,例如朝着结束和朝着开始。
随机访问迭代器也是双向迭代器的一种。
双向迭代器具有正向迭代器的功能,但是唯一的区别是该迭代器也可以递减。
双向迭代器具有一些属性。这些如下。
属性 | 表达 |
---|---|
双向迭代器是默认可构造的,可复制分配的并且也是可破坏的 | A p A q(p) q = p |
我们可以使用相等和不相等运算符比较它们 | p == q p!= q |
可以取消引用。我们可以使用解引用运算符(*)来获取值。 | * p |
可变迭代器可以取消引用为左值 | * p = t |
我们可以使用增量运算符(++)和减量运算符(-)进行递增或递减 | p ++ q-- |
#include <iostream> #include<iterator> #include<vector> using namespace std; int main() { vector<int> vec{10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; vector<int> ::iterator it; vector<int> :: reverse_iterator rev_it; for(it = vec.begin(); it != vec.end(); it++) cout<<*it<<" "; cout<< endl; for(rev_it = vec.rbegin(); rev_it!= vec.rend(); rev_it++) cout<<*rev_it<<" "; }
输出结果
10 20 30 40 50 60 70 80 90 100 100 90 80 70 60 50 40 30 20 10