c++ - 为什么我们需要rbegin并撕裂?

标签 c++

因为我们现在有了advance()prev()来移动迭代器前进或后退,所以我们已经有了begin()end()

我想知道有什么情况我们更好/必须前后移动反向迭代器吗?

最佳答案

算法通常采用两个指定元素范围的迭代器。例如std::for_each:

std::vector<int> x;
std::for_each(x.begin(),x.end(),foo);

如果要以相反的顺序进行for_each的迭代(请注意:for_each会按顺序进行迭代),那么advanceprev都无济于事,但是您可以使用反向迭代器:
std::for_each(x.rbegin(),x.rend(),foo);

关于c++ - 为什么我们需要rbegin并撕裂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61887066/

相关文章:

c++ - VS 2008 生成的奇怪汇编器

c++ - 使用 Google Test 期望在给定范围内的值

c++ - 如果p以根路径开头,为什么std::filesystem::path::append替换当前路径

c++ - std::function模板参数推导

c++ - Visual Studio 2008 : Use external Debug-DLL for Debug-Run and external Release-DLL for Release-Run

c++ - 为什么这个 Qt 信号永远不会发出?

c++ - 在用户输入数组中查找元音

c++ - 非法访问内存中的 vector

c++ - errno 值未更新 (c++)

c++ - 如何将 boost::bind 对象存储为类成员?