如何使用difference_type按任何值增加/减少reverse_iterator
How to increase/decrease reverse_iterator by any value using difference_type
>我正在尝试使用reverse_iterator从相反的位置擦除列表中的特定项目。但是 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); }
我需要从该列表的背面/末尾开始删除特定项目。这仅用于优化或降低时间复杂度。
只有随机访问迭代器支持 operator+
。列表迭代器不是随机访问迭代器。要推进非随机访问迭代器,可以使用 std::advance
或 std::next
。这样:
std::next(l.rbegin(), input[j])
相关文章:
- 错误:未在此范围内声明'reverse'
- 在已经使用Git的情况下减少编译时间
- 如何减少花费的时间
- C++减少modbus_connect超时
- CuDNN 减少格式错误
- 如何减少代码的运行时间以对齐文本?
- 优化/减少 if 语句中的条件表达式
- 如何减少对 std::type_index 的实施?
- 使用 Unity 构建加快C++构建速度,并减少标头依赖项
- 减少本征的 QR 分解
- 关于 std::减少 vs2017 中的未知?
- 应用程序内存使用量减少
- 如何减少函数模板专用化?
- 查找字符串可以减少到 0 的步骤数
- 减少 g++ 内存使用量
- 减少使用 GSL 用于 ODE 系统的编译资源
- 减少复制构造函数调用
- 如何使用 OpenMP 减少嵌套循环?
- DLLexport 类模板实例(专用化),减少了仅标头模板库的编译时间
- 如何减少 abs 函数的数量