operator+,-(ranges::concat_view::iterator)
来自cppreference.com
| |
(1) | (C++26 起) |
| |
(2) | (C++26 起) |
| |
(3) | (C++26 起) |
| |
(4) | (C++26 起) |
| |
(5) | (C++26 起) |
| |
(6) | (C++26 起) |
增加或减少迭代器。
1) 等价于
auto t = it; t += n; return t;。2) 等价于
return it + n;。3) 等价于
auto t = it; t -= n; return t;。4) 设
Ix 为 x.it_ .index(),Iy 为 y.it_ .index():
- 如果
Ix > Iy是true,那么等价于difference_type result = ranges::distance(y.get-iter<Iy>(), y.get-end<Iy>());for (std::size_t I = Iy + 1; I < Ix; I++)result += ranges::distance(x.get-view<I>());return result + ranges::distance(x.get-begin<Ix>(), x.get-iter<Ix>());。 - 否则,如果
Ix < Iy是true,那么等价于return -(y - x);。 - 否则等价于
return x.get-iter<Ix>() - y.get-iter<Iy>();。
5) 设
Ix be x.it_ .index(),等价于 difference_type result = ranges::distance(x.get-iter <Ix>(), x.get-end <Ix>());for (std::size_t I = Ix + 1, count = sizeof...(Views); I < count; I++) result += ranges::distance(x.get-view <I>());return -result;。 设
Fs 为由 Views 中首元素之外的所有元素组成的包,requires 子句中的表达式等价于
(std::sized_sentinel_for<ranges::sentinel_t<maybe-const <Const, Views>>,
ranges::iterator_t<maybe-const <Const, Views>>> && ...) &&
(ranges::sized_range<maybe-const <Const, Fs>> && ...)
如果
x.it_ .valueless_by_exception() 是 true,那么行为未定义。6) 等价于
return -(x - std::default_sentinel);。 设
Fs 为由 Views 中首元素之外的所有元素组成的包,requires 子句中的表达式等价于
(std::sized_sentinel_for<ranges::sentinel_t<maybe-const <Const, Views>>,
ranges::iterator_t<maybe-const <Const, Views>>> && ...) &&
(ranges::sized_range<maybe-const <Const, Fs>> && ...)
如果
x.it_ .valueless_by_exception() 是 true,那么行为未定义。这些函数对常规的无限定或有限定查找不可见,而只能在 concat_view::iterator <Const> 为实参的关联类时由实参依赖查找找到。
参数
| it, x, y | - | 迭代器 |
| n | - | 相对于当前位置的位置 |
返回值
如上所述。
示例
| 本节未完成 原因:暂无示例 |
参阅
| 推进或减小底层迭代器 (公开成员函数) |