std::ranges::slide_view<V>::end
来自 zh.cppreference.net
constexpr auto end()
requires (!(/*simple-view*/<V> && /*slide-caches-nothing*/<const V>));
|
(1) | (C++23 起) |
constexpr auto end() const
requires /*slide-caches-nothing*/<const V>;
|
(2) | (C++23 起) |
返回一个表示该哨位或一个迭代器,指示该slide_view的末尾。
1) 令
base_ 和 n_ 为底层数据成员。等价于:
- 如果
V满足slide-caches-nothing,则return iterator<false>(ranges::begin(base_) + ranges::range_difference_t<V>(size()), n_);。 - 否则,如果
V满足slide-caches-last,则return iterator<false>(ranges::prev(ranges::end(base_), n_ - 1, ranges::begin(base_)), n_);。 - 否则,如果
V满足 common_range,则return iterator<false>(ranges::end(base_), ranges::end(base_), n_);。 - 否则,
return sentinel(ranges::end(base_));。
2) 等价于
begin() + ranges::range_difference_t<const V>(size())。参数
(无)
返回值
表示
slide_view
末尾的
哨位
或
迭代器
。
示例
运行此代码
#include <iostream> #include <ranges> int main() { static constexpr auto source = {'A', 'B', 'C', 'D'}; for (const auto subrange: source | std::views::slide(3)) { std::cout << "[ "; for (auto it = subrange.begin(); it != subrange.end(); ++it) std::cout << *it << ' '; std::cout << "]\n"; } }
输出:
[ A B C ] [ B C D ]
参见
|
返回指向起始位置的迭代器
(公开成员函数) |
|
|
(C++20)
|
返回指向范围起始位置的迭代器
(定制点对象) |
|
(C++20)
|
返回标识范围结束的哨兵
(定制点对象) |