std::ranges::cend
| Definido en el encabezado <ranges>
|
||
| Definido en el encabezado <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ cend = /* unspecified */;
}
|
(desde C++20) (objeto punto de personalización) |
|
| Firma de llamada |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto cend( T&& t );
|
(desde C++20) | |
Devuelve un centinela para el iterador constante(desde C++23) que indica el final de un rango calificado como const(hasta C++23) rango.
|
Sea
Una llamada a |
(hasta C++23) |
|
Si el argumento es un lvalue o
En todos los demás casos, una llamada a |
(desde C++23) |
Si ranges::cend(e) es válida para una expresión e, donde decltype((e)) es T, entonces CT modela std::ranges::range, y(hasta C++23) std::sentinel_for<S, I> es true en todos los casos, donde S es decltype(ranges::cend(e)), y I es decltype(ranges::cbegin(e)). Adicionalmente, S modela constant-iterator si modela input_iterator.(desde C++23)
Objetos de punto de personalización
El nombre
ranges::cend
denota un
objeto de punto de personalización
, que es un
objeto función
constante de un tipo de clase
literal
semiregular
. Consulte
CustomizationPointObject
para más detalles.
Ejemplo
#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)); }
Véase también
|
(C++20)
|
retorna un centinela que indica el final de un rango
(objeto de punto de personalización) |
|
(C++11)
(C++14)
|
retorna un iterador al final de un contenedor o array
(plantilla de función) |