Namespaces
Variants

std:: rend, std:: crend

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
rend crend
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
헤더에 정의됨 <array>
헤더에 정의됨 <deque>
헤더에 정의됨 <flat_map>
헤더에 정의됨 <flat_set>
헤더에 정의됨 <forward_list>
헤더에 정의됨 <inplace_vector>
헤더 파일에 정의됨 <iterator>
헤더 파일에 정의됨 <list>
헤더 파일에 정의됨 <map>
헤더 파일에 정의됨 <regex>
헤더 파일에 정의됨 <set>
헤더 파일에 정의됨 <span>
헤더에 정의됨 <string>
헤더에 정의됨 <string_view>
헤더에 정의됨 <unordered_map>
헤더 파일에 정의됨 <unordered_set>
헤더 파일에 정의됨 <vector>
template < class C >
auto rend ( C & c ) - > decltype ( c. rend ( ) ) ;
(1) (C++14부터)
(C++17부터 constexpr)
template < class C >
auto rend ( const C & c ) - > decltype ( c. rend ( ) ) ;
(2) (C++14 이후)
(C++17 이후 constexpr)
template < class T, std:: size_t N >
std:: reverse_iterator < T * > rend ( T ( & array ) [ N ] ) ;
(3) (C++14 이후)
(C++17 이후 constexpr)
template < class T >
std:: reverse_iterator < const T * > rend ( std:: initializer_list < T > il ) ;
(4) (C++14부터)
(C++17부터 constexpr)
template < class C >
auto crend ( const C & c ) - > decltype ( std :: rend ( c ) ) ;
(5) (C++14 이후)
(C++17 이후 constexpr)

주어진 범위의 역방향 끝을 가리키는 반복자를 반환합니다.

1,2) c. rend ( ) 를 반환하며, 이는 일반적으로 c 로 표현되는 시퀀스의 역방향 끝 지점을 한 칸 지난 반복자입니다.
1) 만약 C 가 표준 Container 라면, C::reverse_iterator 객체를 반환합니다.
2) 만약 C 가 표준 Container 라면, C::const_reverse_iterator 객체를 반환합니다.
3) std:: reverse_iterator < T * > 객체를 array 의 역방향 끝(reverse-end)으로 반환합니다.
4) std:: reverse_iterator < const T * > 객체를 il 의 역방향 끝(reverse-end)으로 반환합니다.
5) 반환값 std:: end ( c ) , c 는 항상 const-qualified로 처리됩니다.
만약 C 가 표준 Container 라면, C::const_reverse_iterator 객체를 반환합니다.

range-rbegin-rend.svg

목차

매개변수

c - rend 멤버 함수를 가진 컨테이너 또는 뷰
array - 임의 타입의 배열
il - std:: initializer_list

반환값

1,2) c. rend ( )
3) std:: reverse_iterator < T * > ( array )
4) std:: reverse_iterator < const T * > ( il. begin ( ) )
5) c. rend ( )

예외

구현 정의 예외를 던질 수 있습니다.

오버로드

클래스와 열거형이 적절한 rend 멤버 함수를 노출하지 않지만 반복이 가능한 경우, rend() 에 대한 사용자 정의 오버로드를 제공할 수 있습니다.

인수 종속 탐색 으로 찾은 rend 의 오버로드는 std :: ranges:: rend std::ranges::crend 의 동작을 사용자 정의하는 데 사용할 수 있습니다.

(C++20부터)

참고 사항

std::initializer_list 에 대한 오버로드는 rend 멤버 함수를 가지고 있지 않기 때문에 필요합니다.

예제

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
    int a[]{4, 6, -3, 9, 10};
    std::cout << "C-style array `a` backwards: ";
    std::copy(std::rbegin(a), std::rend(a), std::ostream_iterator<int>(std::cout, " "));
    auto il = {3, 1, 4};
    std::cout << "\nstd::initializer_list `il` backwards: ";
    std::copy(std::rbegin(il), std::rend(il), std::ostream_iterator<int>(std::cout, " "));
    std::vector<int> v{4, 6, -3, 9, 10};
    std::cout << "\nstd::vector `v` backwards: ";
    std::copy(std::rbegin(v), std::rend(v), std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';
}

출력:

C-style array `a` backwards: 10 9 -3 6 4
std::initializer_list `il` backwards: 4 1 3
std::vector `v` backwards: 10 9 -3 6 4

참고 항목

(C++11) (C++14)
컨테이너나 배열의 끝을 가리키는 반복자를 반환합니다
(함수 템플릿)
컨테이너나 배열의 시작을 가리키는 역방향 반복자를 반환합니다
(함수 템플릿)
(C++11) (C++14)
컨테이너나 배열의 시작을 가리키는 반복자를 반환합니다
(함수 템플릿)
범위의 역방향 끝 반복자를 반환합니다
(커스터마이제이션 포인트 객체)
읽기 전용 범위의 역방향 끝 반복자를 반환합니다
(커스터마이제이션 포인트 객체)