std::rend, std::crend
Материал из cppreference.com
Определено в заголовочном файле <array> | ||
Определено в заголовочном файле <deque> | ||
Определено в заголовочном файле <forward_list> | ||
Определено в заголовочном файле <iterator> | ||
Определено в заголовочном файле <list> | ||
Определено в заголовочном файле <map> | ||
Определено в заголовочном файле <regex> | ||
Определено в заголовочном файле <set> | ||
Определено в заголовочном файле <span> | (начиная с C++20) | |
Определено в заголовочном файле <string> | ||
Определено в заголовочном файле <string_view> | (начиная с C++17) | |
Определено в заголовочном файле <unordered_map> | ||
Определено в заголовочном файле <unordered_set> | ||
Определено в заголовочном файле <vector> | ||
(1) | ||
template<class C > auto rend( C& c )-> decltype(c.rend()); | (начиная с C++14) (до C++17) | |
template<class C > constexprauto rend( C& c )-> decltype(c.rend()); | (начиная с C++17) | |
(1) | ||
template<class C > auto rend(const C& c )-> decltype(c.rend()); | (начиная с C++14) (до C++17) | |
template<class C > constexprauto rend(const C& c )-> decltype(c.rend()); | (начиная с C++17) | |
(2) | ||
template<class T, std::size_t N > std::reverse_iterator<T*> rend( T (&array)[N]); | (начиная с C++14) (до C++17) | |
template<class T, std::size_t N > constexprstd::reverse_iterator<T*> rend( T (&array)[N]); | (начиная с C++17) | |
(3) | ||
template<class T > std::reverse_iterator<const T*> rend(std::initializer_list<T> il ); | (начиная с C++14) (до C++17) | |
template<class T > constexprstd::reverse_iterator<const T*> rend(std::initializer_list<T> il ); | (начиная с C++17) | |
(4) | ||
template<class C > auto crend(const C& c )-> decltype(std::rend(c)); | (начиная с C++14) (до C++17) | |
template<class C > constexprauto crend(const C& c )-> decltype(std::rend(c)); | (начиная с C++17) | |
Возвращает итератор на обратный конец заданного диапазона.
1) Возвращает итератор на обратный конец const-квалифицированного контейнера или представления c.
4) Возвращает итератор на обратный конец const-квалифицированного контейнера или представления c.
Содержание |
[править]Параметры
c | — | контейнер или представление с функцией-элементом rend |
array | — | массив произвольного типа |
il | — | initializer_list |
[править]Возвращаемое значение
1)c.rend()
2)std::reverse_iterator<T*>(array)
3)std::reverse_iterator<const T*>(il.begin())
4)c.rend()
[править]Исключения
Может генерировать исключения, определённые реализацией.
[править]Перегрузки
Пользовательские перегрузки rend
могут быть предоставлены для классов и перечислений, которые не предоставляют подходящей функции-элемента rend()
, но могут быть проитерированы.
Перегрузки | (начиная с C++20) |
[править]Примечание
Перегрузка для std::initializer_list необходима, так как у него нет функции-элемента rend
.
[править]Пример
Запустить этот код
#include <iostream>#include <vector>#include <iterator>#include <algorithm> int main(){int a[]={4, 6, -3, 9, 10};std::cout<<"Массив `a` в стиле C в обратном порядке: ";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` в обратном порядке: ";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` в обратном порядке: ";std::copy(std::rbegin(v), std::rend(v), std::ostream_iterator<int>(std::cout, " "));}
Вывод:
Массив `a` в стиле C в обратном порядке: 10 9 -3 6 4 std::initializer_list `il` в обратном порядке: 4 1 3 std::vector `v` в обратном порядке: 10 9 -3 6 4
[править]Смотрите также
(C++11)(C++14) | возвращает итератор на конец контейнера или массива (шаблон функции) |
(C++14) | возвращает обратный итератор на начало контейнера или массива (шаблон функции) |
(C++11)(C++14) | возвращает итератор на начало контейнера или массива (шаблон функции) |
(C++20) | возвращает обратный конечный итератор диапазона (объект точки настройки) |
(C++20) | возвращает обратный конечный итератор на диапазон только для чтения (объект точки настройки) |