Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::span<T,Extent>::first

      From cppreference.com
      <cpp‎ |container‎ |span
       
       
       
       
      template<std::size_t Count>
      constexprstd::span<element_type, Count> first()const;
      (1)(since C++20)
      constexprstd::span<element_type,std::dynamic_extent>
          first( size_type count)const;
      (2)(since C++20)

      Obtains a subview over the firstCount orcount elements of this span.

      1) The element count is provided as a template argument, and the subview has a static extent.
      IfCount> Extent istrue, the program is ill-formed.
      2) The element count is provided as a function argument, and the subview has a dynamic extent.

      IfCount> size() orcount> size() istrue, the behavior is undefined.

      (until C++26)

      IfCount> size() orcount> size() istrue:

      • If the implementation ishardened, acontract violation occurs. Moreover, if the contract-violation handler returns under “observe” evaluation semantic, the behavior is undefined.
      • If the implementation is not hardened, the behavior is undefined.
      (since C++26)

      Contents

      [edit]Parameters

      count - the number of the elements of the subview

      [edit]Return value

      1)std::span<element_type, Count>{data(), Count}
      2)std::span<element_type,std::dynamic_extent>{data(), count}

      [edit]Example

      Run this code
      #include <iostream>#include <ranges>#include <span>#include <string_view> void print(conststd::string_view title,const std::ranges::forward_rangeauto& container){auto size{std::size(container)};std::cout<< title<<'['<< size<<"]{";for(constauto& elem: container)std::cout<< elem<<(--size?", ":"");std::cout<<"};\n";} void run_game(std::span<constint> span){    print("span: ", span); std::span<constint,5> span_first= span.first<5>();    print("span.first<5>(): ", span_first); std::span<constint,std::dynamic_extent> span_first_dynamic= span.first(4);    print("span.first(4): ", span_first_dynamic);} int main(){int a[8]{1,2,3,4,5,6,7,8};    print("int a", a);    run_game(a);}

      Output:

      int a[8]{1, 2, 3, 4, 5, 6, 7, 8};span: [8]{1, 2, 3, 4, 5, 6, 7, 8};span.first<5>(): [5]{1, 2, 3, 4, 5};span.first(4): [4]{1, 2, 3, 4};

      [edit]See also

      obtains a subspan consisting of the lastN elements of the sequence
      (public member function)[edit]
      obtains a subspan
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/span/first&oldid=182291"

      [8]ページ先頭

      ©2009-2025 Movatter.jp