如何使用 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::advance
或 std::next
。像这样:
std::next(l.rbegin(), input[j])
我正在尝试使用 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::advance
或 std::next
。像这样:
std::next(l.rbegin(), input[j])