std::array::end, std::array::cend
De cppreference.com
iterator end() noexcept; |
(hasta C++17) | |
constexpr iterator end() noexcept; |
(desde C++17) | |
const_iterator end() const noexcept; |
(hasta C++17) | |
constexpr const_iterator end() const noexcept; |
(desde C++17) | |
const_iterator cend() const noexcept; |
(hasta C++17) | |
constexpr const_iterator cend() const noexcept; |
(desde C++17) | |
Devuelve un iterador al elemento que sigue después del último elemento del array
.
Este elemento actúa como un marcador de posición; intentar accederlo resulta en comportamiento no definido.
Contenido |
[editar] Parámetros
(Ninguno)
[editar] Valor de retorno
Iterador al elemento que sigue después del último elemento.
[editar] Complejidad
Constante.
[editar] Ejemplo
Ejecuta este código
#include <array> #include <iostream> #include <algorithm> #include <iomanip> int main() { std::cout << std::boolalpha; std::array<int, 0> vacio; // array vacío std::cout << "1) " << (vacio.begin() == vacio.end()) << ' ' // verdadero << (vacio.cbegin() == vacio.cend()) << '\n'; // verdadero // *(vacio.begin()) = 42; // => comportamiento indefinido en tiempo de ejecución std::array<int, 4> numeros{5, 2, 3, 4}; std::cout << "2) " << (numeros.begin() == numeros.end()) << ' ' // falso << (numeros.cbegin() == numeros.cend()) << '\n' // falso << "3) " << *(numeros.begin()) << ' ' // 5 << *(numeros.cbegin()) << '\n'; // 5 *numeros.begin() = 1; std::cout << "4) " << *(numeros.begin()) << '\n'; // 1 // *(numeros.cbegin()) = 42; // ERROR en tiempo de compilación: // variable de solo lectura no es asignable // imprimir todos los elementos std::cout << "5) "; std::for_each(numeros.cbegin(), numeros.cend(), [](int x) { std::cout << x << ' '; }); std::cout << '\n'; constexpr std::array constantes{'A', 'B', 'C'}; static_assert(constantes.begin() != constantes.end()); // de acuerdo static_assert(constantes.cbegin() != constantes.cend()); // de acuerdo static_assert(*constantes.begin() == 'A'); // de acuerdo static_assert(*constantes.cbegin() == 'A'); // de acuerdo // *constantes.begin() = 'Z'; // ERROR en tiempo de compilación: // variable de solo lectura no es asignable }
Salida:
1) true true 2) false false 3) 5 5 4) 1 5) 1 2 3 4
[editar] Véase también
(C++11) |
Devuelve un iterador al principio. (función miembro pública) |