Namespaces
Variants

std::ranges::zip_view<视图>::end

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
constexpr auto end()
    requires (!(/*simple-view*/<Views> && ...);
(1) (C++23 起)
constexpr auto end() const
    requires (ranges::range<const Views> && ...);
(2) (C++23 起)
template< class... Rs >
concept /*zip-is-common*/ =
    (sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
    ||
    (!(ranges::bidirectional_range<Rs> && ...) && (ranges::common_range<Rs> && ...))
    ||
    ((ranges::random_access_range<Rs> && ...) && (ranges::sized_range<Rs> && ...));
(3) (仅用于阐述*)

返回一个 迭代器或一个 哨位,该哨位与 zip_view 的尾迭代器比较相等。

令 views_ 表示底层视图的元组。

1) 等同于:
  • return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
如果 /*zip-is-common*/<Views...> 求值为 false。否则,
  • return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
如果 (ranges::random_access_range<Views> && ...) 求值为 true。否则,
  • return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));。
2) 等同于:
  • return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
如果 /*zip-is-common*/<const Views...> 求值为 false。否则,
  • return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
如果 ranges::random_access_range<const Views> && ... 求值为 true。否则,
  • return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));。

参数

(无)

返回值

一个迭代器或哨兵,表示如上所述的 zip_view 的结束位置。

注释

ranges:: range < const ranges:: zip_view < Views... >> 当且仅当对于 Views... 中的每个类型 Vi , const Vi 满足 range 概念时成立。

示例

参见

返回指向起始位置的迭代器
(公开成员函数)
返回指示范围结束的哨兵
(定制点对象)