std::end, std::cend - cppreference.com
De cppreference.com
</tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody>
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
| Definido en el archivo de encabezado |
||
|
|
(1) | (desde C++11) (constexpr desde C++17) |
|
|
(2) | (desde C++11) (constexpr desde C++17) |
| (3) | ||
|
|
(desde C++11) (hasta C++14) |
|
|
|
(desde C++14) | |
|
|
(4) | (desde C++14) |
Devuelve un iterador al final del rango dado (es decir, al elemento después del último elemento).
1,2) Devuelve c.end(), que normalmente es un iterador que se encuentra un paso después del final de la secuencia representada por c.
1) Si C es un Container estándar, devuelve un objeto C::iterator.
2) Si C es un Container estándar, devuelve un objeto {tt|C::const_iterator}}.
3) Devuelve un puntero al final de array.
4) Devuelve std::end(c), con c siempre tratado como calificado const.
Si C es un Container estándar, devuelve un objeto C::const_iterator.
Parámetros
| c | - | Un contenedor o vista con una función miembro end.
|
| array | - | Un array de tipo arbitrario. |
Valor de retorno
1,2) c.end()
3) array + N
4) c.end()
Excepciones
4)
Sobrecargas
Se pueden proporcionar sobrecargas personalizadas de end para clases y enumeraciones que no exponen una función miembro end() adecuada, pero que se pueden iterar. La biblioteca estándar ya proporciona las siguientes sobrecargas:
De manera similar al uso de swap (descrito en Swappable), el uso típico de la función end en un contexto genérico es un equivalente de using std::end; end(arg);, que permite que tanto las sobrecargas seleccionadas por la búsqueda dependiente de argumentos para tipos definidos por el usuario como las plantillas de función de la biblioteca estándar aparezcan en el mismo conjunto de sobrecargas.
template<typename Container, typename Function> void for_each(Container&& cont, Function f) { using std::begin; auto it = begin(cont); using std::end; auto end_it = end(cont); for (; it != end_it; ++it) f(*it); }
|
Las sobrecargas de |
(desde C++20) |
Notas
Las sobrecargas que no son para arrays reflejan exactamente el comportamiento de C::end. Sus efectos pueden ser sorprendentes si la función miembro no tiene una implementación razonable.
Se introduce std::cena para unificar los accesos a rangos de miembros y no miembros. Véase también Asunto LWG 2128.
Si C es una vista const superficial, std::cbegin puede devolver un iterador mutable. Este comportamiento es inesperado para algunos usuarios. Véase también P2276 y P2278.
Ejemplo
#include <algorithm> #include <iostream> #include <vector> int main() { std::vector<int> v = {3, 1, 4}; if (std::find(std::begin(v), std::end(v), 5) != std::end(v)) std::cout << "Found a 5 in vector v!\n"; int w[] = {5, 10, 15}; if (std::find(std::begin(w), std::end(w), 5) != std::end(w)) std::cout << "Se encontró un 5 en el array w!\n"; }
Salida:
Se encontró un 5 en el array w!
Véase también
| Devuelve un iterator al comienzo de un contenedor o array. (plantilla de función) [editar] | |
| Devuelve un iterador al final de un rango (objeto punto de personalización) [editar] | |
| Devuelve un centinela que indica el fin de un rango de solo lectura (objeto punto de personalización) [editar] |