|
迭代器适配器:
这些特殊的迭代器允许算法在反转,插入,流中操作。 Reverse Iterators Reverse Iterators 代替平常的迭代器,算法处理元素以相反的顺序,所有的容器都支持用Reverse Iterators 一个有趣的例子: vector<int> col1; for (int i=1;i<=9;++i) col1.push_back(i); vector<int>::iterator pos; pos= find(col1.begin(),col1.end(),5); cout<<"pos:"<<*pos<<endl; vector<int>::reverse_iterator rpos(pos); cout<<"rpor:"<<*rpos<<endl; 输出的结果是: Pos:5 Rpos:4 若将 pos= find(col1.begin(),col1.end(),5); 改为 pos= find(col1.begin(),col1.end(),3); 输出的结果是: Pos:3 Rpos:2 rpos 例子 deque<int> coll; for (int i=1; i<=9; ++i) {coll.push_back(i);} deque<int>::iterator pos1; pos1 = find (coll.begin(), coll.end(),2); deque<int>::iterator pos2; pos2 = find (coll.begin(), coll.end(), 7); for_each (pos1, pos2,print); cout << endl; deque<int>::reverse_iterator rpos1(pos1); deque<int>::reverse_iterator rpos2(pos2); for.each (rpos2, rpos1,print); cout << endl; output: 1 2 3 4 5 6 7 8 9 2 3 4 5 6 6 5 4 3 2 迭代器pos1,pos2 所以, rbegin() rend() 我们可以把Reverse Iterators namespace std { template <class Iterator> class reverse_iterator ... { ... Iterator base() const; ... }; } 调用Reverse Iterators |
STL迭代器之迭代器适配器:Reverse Iterators
最新推荐文章于 2025-08-22 09:12:27 发布
本文深入探讨了迭代器适配器中的ReverseIterators概念,解释了其如何通过反转操作符的行为来实现元素的逆序处理。通过实例展示了如何在容器操作中使用ReverseIterators,并解析了逆向迭代器与正向迭代器之间的区别,特别是关于指向位置的解释。此外,文章还介绍了ReverseIterators如何与deque容器结合使用,以及如何将其转换回正向迭代器。
237

被折叠的 条评论
为什么被折叠?



