迭代器适配器:
这些特殊的迭代器允许算法在反转,插入,流中操作。 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
最新推荐文章于 2024-08-16 08:33:23 发布