因为我们现在有了advance()
和prev()
来移动迭代器前进或后退,所以我们已经有了begin()
和end()
。
我想知道有什么情况我们更好/必须前后移动反向迭代器吗?
最佳答案
算法通常采用两个指定元素范围的迭代器。例如std::for_each
:
std::vector<int> x;
std::for_each(x.begin(),x.end(),foo);
如果要以相反的顺序进行
for_each
的迭代(请注意:for_each
会按顺序进行迭代),那么advance
和prev
都无济于事,但是您可以使用反向迭代器:std::for_each(x.rbegin(),x.rend(),foo);
关于c++ - 为什么我们需要rbegin并撕裂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61887066/