📅  最后修改于: 2023-12-03 15:23:22.446000             🧑  作者: Mango
在 C++ STL 中,rbegin()
和 rend()
操作符的主要作用是返回指向容器的最后一个元素的逆序迭代器和指向容器的第一个元素之前位置(即指向容器最后一个元素之后位置)的逆序迭代器。
rbegin()
操作符返回一个指向容器最后一个元素的逆序迭代器。例如,对于 vector
容器,rbegin()
返回指向从后往前的第一个元素的迭代器。
std::vector<int> vec = {1, 2, 3, 4, 5};
auto rit = vec.rbegin(); // 返回指向 5 的迭代器
std::cout << *rit; // 输出 5
rend()
操作符返回指向容器的第一个元素之前位置(即指向容器最后一个元素之后位置)的逆序迭代器。例如,对于 vector
容器,rend()
返回指向从后往前的最后一个元素的迭代器。
std::vector<int> vec = {1, 2, 3, 4, 5};
auto rit = vec.rend(); // 返回指向 1 前的迭代器
std::cout << *(rit - 1); // 输出 5
逆序迭代器和普通迭代器类似,可以用来遍历容器中的元素。但是需要注意的是,逆序迭代器在使用时应该使用 ++
而不是 --
操作符进行迭代。
std::vector<int> vec = {1, 2, 3, 4, 5};
for(auto rit = vec.rbegin(); rit != vec.rend(); ++rit)
{
std::cout << *rit << " "; // 逆序输出 5 4 3 2 1
}
rbegin()
和 rend()
操作符是 C++ STL 中的两个逆序迭代器函数,它们可以方便地对容器的元素进行逆序遍历。使用逆序迭代器时注意应该使用 ++
而不是 --
进行迭代。