如何使用 difference_type 按任何值 increase/decrease reverse_iterator

How to increase/decrease reverse_iterator by any value using difference_type

我正在尝试使用 reverse_iterator.But 从反向位置删除列表的特定项目 stl_iterator.h 头文件中出现编译错误。

我正在尝试做...

这里的input[]是一个整数数组。

 list<int>:: reverse_iterator it = l.rbegin()+ input[j];
                    l.erase( std::next(it).base() );

stl_iterator.h 文件显示错误...

 reverse_iterator
      operator+(difference_type __n) const
      { return reverse_iterator(current - __n); }

我需要擦除从 back/end 开始的特定项目 list.This 只是为了优化或降低时间复杂度。

只有随机访问迭代器支持 operator+。列表迭代器不是随机访问迭代器。要推进一个非随机访问迭代器,您可以使用 std::advancestd::next。像这样:

std::next(l.rbegin(), input[j])