std::ranges::slide_view<V>::iterator<Const>::iterator

来自cppreference.com
< cpp‎ | ranges‎ | slide view‎ | iterator
 
 
范围库
范围适配器
 
 
/*iterator*/();
(1) (C++23 起)
constexpr /*iterator*/( /*iterator*/<!Const> i )

    requires Const &&

        std::convertible_to<ranges::iterator_t<V>, ranges::iterator_t<Base>>
(2) (C++23 起)
private:

constexpr /*iterator*/( ranges::iterator_t<Base> current,
                        ranges::range_difference_t<Base> n )

    requires (!/*slide-caches-first*/<Base>);
(3) (仅用于阐述*)
private:

constexpr /*iterator*/( ranges::iterator_t<Base> current,
                        ranges::iterator_t<Base> last_ele,
                        ranges::range_difference_t<Base> n )

    requires /*slide-caches-first*/<Base>;
(4) (仅用于阐述*)

构造迭代器。

1) 默认构造函数。值初始化各底层数据成员:
2)/*iterator*/<false> 转换为 /*iterator*/<true>。初始化各底层数据成员:
  • std::move(i.current_) 初始化 current_
  • i.n_ 初始化 n_
注意 /*iterator*/<true> 只有在 Base 实现 /*slide-caches-nothing*/ 时才成立,因为此时不存在 last_ele_
3) 被用作构造 ranges::slide_view::beginranges::slide_view::end 的私有构造函数。此构造函数不能被用户访问,初始化各底层数据成员:
  • current 初始化 current_
  • n 初始化 n_
注意此重载仅在 last_ele_ 不存在时出现。
4)ranges::slide_view::beginranges::slide_view::end 使用的私有构造函数。此构造函数不能被用户访问,初始化各底层数据成员:
  • current 初始化 current_
  • last_ele 初始化 last_ele_(注意此数据成员的存在是 /*slide-caches-first*/<Base> 的要求),
  • n 初始化 n_

参数

i - /*iterator*/<false>
current - 指向 slide_view 当前元素的迭代器
last_ele - 指向 slide_view 最后一个元素的迭代器
n - slide_view 的滑窗宽度

示例