Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::crend

      From cppreference.com
      <cpp‎ |ranges
       
       
      Ranges library
      Range adaptors
       
      Defined in header<ranges>
      Defined in header<iterator>
      inlinenamespace/* unspecified */{

         inlineconstexpr/* unspecified */ crend=/* unspecified */;

      }
      (since C++20)
      (customization point object)
      Call signature
      template<class T>

          requires/* see below */

      constexpr/* see below */auto crend( T&& t);
      (since C++20)

      Returns a sentinel for the constant iterator(since C++23) indicating the end of aconst-qualified(until C++23) range that is treated as a reversed sequence.

      range-rbegin-rend.svg

      LetCT be

      • conststd::remove_reference_t<T>& if the argument is an lvalue (i.e.T is an lvalue reference type),
      • const T otherwise.

      A call toranges::crend isexpression-equivalent toranges::rend(static_cast<CT&&>(t)).

      (until C++23)

      If the argument is an lvalue orranges::enable_borrowed_range<std::remove_cv_t<T>> istrue, then a call toranges::crend isexpression-equivalent to:

      In all other cases, a call toranges::crend is ill-formed, which can result insubstitution failure when the call appears in the immediate context of a template instantiation.

      (since C++23)

      Ifranges::crend(e) is valid for an expressione, wheredecltype((e)) isT, thenCT modelsstd::ranges::range, and(until C++23)std::sentinel_for<S, I> istrue in all cases, whereS isdecltype(ranges::crend(e)), andI isdecltype(ranges::crbegin(e)).Additionally,S modelsconstant-iterator if it modelsinput_iterator.(since C++23)

      Customization point objects

      The nameranges::crend denotes acustomization point object, which is a constfunction object of aliteralsemiregular class type. SeeCustomizationPointObject for details.

      [edit]Example

      Run this code
      #include <algorithm>#include <iostream>#include <iterator>#include <vector> int main(){int a[]{4,6,-3,9,10};std::cout<<"Array backwards: ";namespace ranges= std::ranges;ranges::copy(ranges::rbegin(a),ranges::rend(a),std::ostream_iterator<int>(std::cout," "));std::cout<<'\n'; std::cout<<"Vector backwards: ";std::vector v{4,6,-3,9,10};ranges::copy(ranges::rbegin(v),ranges::rend(v),std::ostream_iterator<int>(std::cout," "));std::cout<<'\n';}

      Output:

      Array backwards: 10 9 -3 6 4Vector backwards: 10 9 -3 6 4

      [edit]See also

      returns a reverse end iterator to a range
      (customization point object)[edit]
      (C++14)
      returns a reverse end iterator for a container or array
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/crend&oldid=179362"

      [8]ページ先頭

      ©2009-2025 Movatter.jp