C++标准库---Reverse(逆向)迭代器

180it 2020-10-15 PM 1507℃ 0条

Reverse(逆向)迭代器

Reverse迭代器是一种配接器,重新定义递增递减运算,使其行为正好倒置,这样使迭代器以逆向来处理元素。

rbegin:传回逆向遍历的第一个元素,也就是实际上最后一个元素的位置;
rend:传回逆向遍历时最后一个元素的下一个位置,也就是实际上第一个元素的前一个位置;

代码示例:

#include<iostream>
#include<list>
#include<vector>
#include<algorithm>
 
using namespace std;
 
void print(int elem)
{
    cout<<elem<<" ";
}
 
int main()
{
    list<int> coll;
 
    for(int i=1;i<=9;i++)
    {
        coll.push_back(i);
    }
 
    list<int>::iterator pos1=coll.begin();
    list<int>::iterator pos2=coll.end();
 
    for_each(coll.begin(),coll.end(),print);
    cout<<endl;
 
    for_each(coll.rbegin(),coll.rend(),print);
    cout<<endl;
 
    list<int>::reverse_iterator rpos1(pos1);//将一个迭代器转换为逆向迭代器,原来那个迭代器必须具有双向移动能力
    list<int>::reverse_iterator rpos2(pos2);
 
    for_each(rpos2,rpos1,print);
    cout<<endl;
 
    system("pause");
    return 0;
}

运行结果:
1 2 3 4 5 6 7 8 9

9 8 7 6 5 4 3 2 1

9 8 7 6 5 4 3 2 1

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

C++标准库---Reverse(逆向)迭代器