5.4.1 逆向型迭代器
2025年09月26日
5.4.1 逆向型迭代器
逆向型迭代器(Reverse Iterator)是一种配接器,用于重新定义递增运算和递减运算,使其行为正好倒置。程序执行时,算法以逆序次序来处理元素。所有标准容器都允许使用逆向型迭代器来遍历元素。下面举例说明。
例5-1
例5-1的执行效果如图5-2所示。
图5-2 例5-1的执行效果
在例5-1中,容器的成员函数rbegin()和rend()会分别传回一个逆向迭代器,就像be- gin()和end()的返回值一样,共同定义出一个半开区间。其中rbegin()函数传回逆向遍历第一元素的位置,即实际最后一个元素的位置;rend()函数传回逆向遍历时最后一个元素的下一个位置,即第一个元素的前一个位置(已经不属于本容器了)。
通常的迭代器若具备双向移动的功能,则可以转化成一个逆向迭代器。例如,
上述代码实现将正常迭代器转化为逆迭代器,并输出其值。
例5-2
例5-2的执行效果如图5-3所示。
图5-3 例5-2的执行效果
逆向型迭代器类模板提供了一个base()成员函数。base()成员函数可以实现将逆迭代器类型的迭代器转化为正常迭代器。