Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::cartesian_product_view<First, Vs...>::size

      From cppreference.com
      <cpp‎ |ranges‎ |cartesian product view
       
       
      Ranges library
      Range adaptors
       
      std::ranges::cartesian_product_view
      Member functions
      cartesian_product_view::size
      Deduction guides
      Iterator
      Member functions
      Non-member functions
       
      constexpr/* see description */ size()
          requires/*cartesian-product-is-sized*/<First, Vs...>;
      (1)(since C++23)
      constexpr/* see description */ size()const
          requires/*cartesian-product-is-sized*/<const First,const Vs...>;
      (2)(since C++23)

      Returns the number of elements. The return type is an implementation-defined/*unsigned-integer-like*/ typeU.

      Letbases_ be the underlying tuple of views, andprod be the product of the sizes of all the ranges inbases_.

      1,2) Returnsprod. The behavior is undefined ifprod cannot be represented by the return typeU.

      Equivalent to:

      return[&]<std::size_t...Is>(std::index_sequence<Is...>){auto prod=static_cast<U>(1);    prod=(static_cast<U>(ranges::size(std::get<Is>(bases_)))* ...);return prod;}(std::make_index_sequence<1U+ sizeof...(Vs)>{});

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      The number of elements, that is, the product of the sizes of all the underlying ranges.

      [edit]Notes

      The return type is the smallest/*unsigned-integer-like*/ type that is sufficiently wide to store the product of the maximum sizes of all the underlying ranges, if such a type exists.

      [edit]Example

      Run this code
      #include <ranges> int main(){constexprstaticauto w={1};constexprstaticauto x={2,3};constexprstaticauto y={4,5,6};constexprstaticauto z={7,8,9,10,11,12,13};constexprauto v= std::ranges::cartesian_product_view(w, x, y, z);    static_assert(v.size()== w.size()* x.size()* y.size()* z.size() and v.size()==42);}

      [edit]See also

      returns an integer equal to the size of a range
      (customization point object)[edit]
      returns a signed integer equal to the size of a range
      (customization point object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/cartesian_product_view/size&oldid=172638"

      [8]ページ先頭

      ©2009-2026 Movatter.jp