Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::cend

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

         inlineconstexpr/* unspecified */ cend=/* unspecified */;

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

          requires/* see below */

      constexpr/* see below */auto cend( 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.

      range-begin-end.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::cend isexpression-equivalent toranges::end(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::cend isexpression-equivalent to:

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

      (since C++23)

      Ifranges::cend(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::cend(e)), andI isdecltype(ranges::cbegin(e)).Additionally,S modelsconstant-iterator if it modelsinput_iterator.(since C++23)

      Customization point objects

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

      [edit]Example

      Run this code
      #include <algorithm>#include <cassert>#include <ranges>#include <vector> int main(){std::vector vec{3,1,4};int arr[]{5,10,15}; assert(std::ranges::find(vec,5)== std::ranges::cend(vec));assert(std::ranges::find(arr,5)!= std::ranges::cend(arr));}

      [edit]See also

      returns a sentinel indicating the end of a range
      (customization point object)[edit]
      (C++11)(C++14)
      returns an iterator to the end of a container or array
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/cend&oldid=179360"

      [8]ページ先頭

      ©2009-2025 Movatter.jp