std::rbegin, std::crbegin
| Definido en el encabezado <array>
|
||
| Definido en el encabezado <deque>
|
||
| Definido en el encabezado <flat_map>
|
(desde C++23) |
|
| Definido en el encabezado <flat_set>
|
(desde C++23) |
|
| Definido en el encabezado <forward_list>
|
||
| Definido en el encabezado <inplace_vector>
|
(desde C++26) |
|
| Definido en el encabezado <iterator>
|
||
| Definido en el encabezado <list>
|
||
| Definido en el encabezado <map>
|
||
| Definido en el encabezado <optional>
|
(desde C++26) |
|
| Definido en el encabezado <regex>
|
||
| Definido en el encabezado <set>
|
||
| Definido en el encabezado <span>
|
(desde C++20) |
|
| Definido en el encabezado <stacktrace>
|
(desde C++23) |
|
| Definido en el encabezado <string>
|
||
| Definido en el encabezado <string_view>
|
(desde C++17) |
|
| Definido en el encabezado <unordered_map>
|
||
| Definido en el encabezado <unordered_set>
|
||
| Definido en el encabezado <valarray>
|
||
| (1) <vector>
|
||
template< class C >
auto rbegin( C& c ) noexcept(noexcept(c.rbegin()))
-> decltype(c.rbegin());
|
(desde C++14) | (constexpr desde C++17) (2) |
template< class C >
auto rbegin( const C& c ) noexcept(noexcept(c.rbegin()))
-> decltype(c.rbegin());
|
(desde C++14) | (constexpr desde C++17) (3) |
template< class T, std::size_t N >
std::reverse_iterator<T*> rbegin( T (&array)[N] ) noexcept;
|
(desde C++14) | (constexpr desde C++17) (4) |
template< class T >
std::reverse_iterator<const T*> rbegin( std::initializer_list<T> il ) noexcept;
|
(desde C++14) | (constexpr desde C++17) (5) |
template< class C >
auto crbegin( const C& c ) noexcept(noexcept(std::rbegin(c)))
-> decltype(std::rbegin(c));
|
(desde C++14) | (constexpr desde C++17) Devuelve un iterador al inicio inverso del rango dado. |
1,2)
c.rbegin().c1)std::reverse_iterator<T*>.array4)std::reverse_iterator<const T*>.il5)std::rbegin(c) siempre tratado como calificado const.c Si
Parámetros
| c | - |
un contenedor o vista con una función miembro
rbegin
|
| array | - | un array de tipo arbitrario |
| il | - | un std:: initializer_list |
Valor de retorno
Excepciones
Puede lanzar excepciones definidas por la implementación.
Sobrecargas
Sobrecargas personalizadas de
rbegin
pueden proporcionarse para clases y enumeraciones que no exponen una función miembro
rbegin()
adecuada, pero que pueden ser iteradas.
|
Las sobrecargas de
|
(desde C++20) |
Notas
La sobrecarga para
std::initializer_list
es necesaria porque no tiene una función miembro
rbegin
.
Ejemplo
#include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> v = {3, 1, 4}; auto vi = std::rbegin(v); // el tipo de "vi" es std::vector<int>::reverse_iterator std::cout << "*vi = " << *vi << '\n'; *std::rbegin(v) = 42; // OK: después de la asignación v[2] == 42 // *std::crbegin(v) = 13; // error: la ubicación es de solo lectura int a[] = {-5, 10, 15}; auto ai = std::rbegin(a); // el tipo de "ai" es std::reverse_iterator<int*> std::cout << "*ai = " << *ai << '\n'; auto il = {3, 1, 4}; // el tipo de "it" a continuación es std::reverse_iterator<int const*>: for (auto it = std::rbegin(il); it != std::rend(il); ++it) std::cout << *it << ' '; std::cout << '\n'; }
Salida:
*vi = 4 *ai = 15 4 1 3
Informes de defectos
Los siguientes informes de defectos que cambian el comportamiento se aplicaron retroactivamente a los estándares C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento según publicación | Comportamiento correcto |
|---|---|---|---|
| LWG 3537 | C++14 | std::rbegin y std::crbegin no se requería que propagaran la especificación de excepciones
|
requerido |
Véase también
|
(C++11)
(C++14)
|
devuelve un iterador al inicio de un contenedor o arreglo
(plantilla de función) |
|
(C++11)
(C++14)
|
devuelve un iterador al final de un contenedor o arreglo
(plantilla de función) |
|
(C++14)
|
devuelve un iterador inverso al final para un contenedor o arreglo
(plantilla de función) |
|
(C++20)
|
devuelve un iterador inverso a un rango
(objeto de punto de personalización) |
|
(C++20)
|
devuelve un iterador inverso a un rango de solo lectura
(objeto de punto de personalización) |