std::array::end, std::array::cend
De cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
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.
Parámetros
(Ninguno)
Valor de retorno
Iterador al elemento que sigue después del último elemento.
Complejidad
Constante.
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
Véase también
(C++11) |
Devuelve un iterador al principio. (función miembro pública) |