- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 reverse_iterator 从反向位置删除列表的特定项目。但是 STL_iterator.h 头文件中出现编译错误。
这里的input[]是一个整数数组。
list<int>:: reverse_iterator it = l.rbegin()+ input[j];
l.erase( std::next(it).base() );
reverse_iterator
operator+(difference_type __n) const
{ return reverse_iterator(current - __n); }
我需要从该列表的后端/末尾开始删除特定项目。这仅用于优化或降低时间复杂度。
最佳答案
只有随机访问迭代器支持operator+
。列表迭代器不是随机访问迭代器。要推进非随机访问迭代器,您可以使用 std::advance
或 std::next
。像这样:
std::next(l.rbegin(), input[j])
关于c++ - 如何使用 difference_type 将 reverse_iterator 增加/减少任意值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441377/
由于无聊和想要一些练习(所以,请不要告诉我 just use Boost :-))我目前正在实现一个 STL 风格的计数迭代器。 但是,在实现需要将 difference_type 定义为有意义的东西
当我尝试使用 std::distance 时使用 gcc 4.7 下的自定义迭代器,它提示找不到 difference_type .遗憾的是,我不知道为什么会失败。 #include class n
我正在为第 3 方 C 库编写 C++ 包装器。 该库提供了一些用于迭代一系列对象的函数。 我想编写一个迭代器来包装此行为,以便迭代更容易,但我想不出我将如何提供强制性的“差异”类型,因为迭代对象没有
我有一些序列化逻辑,其中我还序列化了 STL 数据结构。目前,我只是编写大小字段,然后通过遍历它来编写结构的每个元素。在反序列化中,我读取了大小字段,然后我知道何时读取完数据结构。 不,问题是如何正确
vector两者都有vector::size_type和 vector::difference_type .从size_type 开始,两者似乎都没有必要存在。保证能够保存与 vector 的最大元素
今天我正在替换一个低级的 C 风格的方法,该方法将缓冲区保存到文件中。整个事情看起来像这样: bool Profile::save(const char* path) { FILE* p
我看到 iterator_traits 总是定义一个 difference_type:https://en.cppreference.com/w/cpp/iterator/iterator_trait
我正在尝试找出 difference_type 成员对于满足 std::weakly_incrementable 的重要性概念。我目前正在定义一个满足 std::output_iterator 的类,
我正在尝试使用 reverse_iterator 从反向位置删除列表的特定项目。但是 STL_iterator.h 头文件中出现编译错误。 我正在尝试做... 这里的input[]是一个整数数组。
为什么返回类型是 std::count difference_type迭代器(通常是 ptrdiff_t )。 由于计数永远不会是负数,所以 size_t 技术上正确的选择?如果计数超出 ptrdif
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Why does the C++ standard algorithm “count” return a pt
在我的项目中,我想将流拆分为一些给定类型的值,所以我实现了一个模板函数 template TOutputIter SplitSpace(std::istream& IS, TOutputIter r
我正在尝试使用这个 vector.h 函数: random_shuffle(s.begin()+from+i,s.begin()+to,s); 发生此错误: c:\program files (x8
我是一名优秀的程序员,十分优秀!