Espacios de nombres
Variantes

std::array::begin, std::array::cbegin

De cppreference.com

[edit template]
 
 
 
 
<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 begin() noexcept;
(hasta C++17)
constexpr iterator begin() noexcept;
(desde C++17)
const_iterator begin() const noexcept;
(hasta C++17)
constexpr const_iterator begin() const noexcept;
(desde C++17)
const_iterator cbegin() const noexcept;
(hasta C++17)
constexpr const_iterator cbegin() const noexcept;
(desde C++17)

Devuelve un iterador al primer elemento del array.

Si el array está vacío, el iterador devuelto será igual a end().

Parámetros

(Ninguno)

Valor de retorno

Iterador al primer elemento.

Complejidad

Constante.


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

Véase también

(C++11)
Devuelve un iterador al final.
(función miembro pública) [editar]