Espacios de nombres
Variantes
Acciones

std::array::end, std::array::cend

De cppreference.com
< cpp‎ | container‎ | array
 
 
 
std::array
Funciones miembro
Acceso a elementos
Iteradores
array::endarray::cend
Capacidad
Modificadores
Funciones no miembro
(C++20)
(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(C++20)
Clases auxiliares
Guías de deducción(C++17)
 
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.

range-begin-end.svg

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

Iterador al elemento que sigue después del último elemento.

[editar] Complejidad

Constante.


[editar] Ejemplo

#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

Devuelve un iterador al principio.
(función miembro pública) [editar]