Biblioteca de matrices C ++ - Función cbegin ()

Descripción

La función C ++ std::array::cbegin()devuelve un iterador constante que apunta al inicio de la matriz. El iterador devuelto por este método se puede usar para iterar el contenedor, pero no se puede usar para modificar el contenido de la matriz.

Declaración

A continuación se muestra la declaración de la función std :: array :: cbegin () del encabezado std :: array.

const_iterator cbegin() const noexcept;

Parámetros

Ninguna

Valor devuelto

Devuelve un iterador constante que apunta al comienzo de la matriz.

Excepciones

Esta función miembro nunca lanza una excepción.

Complejidad del tiempo

Constante es decir O (1)

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: array :: cbegin ().

#include <iostream>
#include <array>

using namespace std;

int main(void) {

   array<int, 5> arr = {1, 2, 3, 4, 5};
   auto it = arr.cbegin();

   /* iterate whole array */
   while (it < arr.end()) {
      cout << *it << " ";
      ++it;
   }

   cout << endl;

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

1 2 3 4 5

Como este método devuelve un iterador constante, no podemos usar este iterador para modificar el contenido de la matriz. Cualquier intento de modificar el elemento de la matriz informará un error de compilación.

#include <iostream>
#include <array>

using namespace std;

int main(void) {

   array<int, 5> arr = {1, 2, 3, 4, 5};
   auto it = arr.cbegin();   /* returns a constant iterator */

   /* ERROR: attemp to modify value will report compilation error */
   *it = 100;

   return 0;
}

La compilación del programa anterior fallará con el siguiente mensaje de error.

cbegin.cpp: In function ‘int main()’:
cbegin.cpp:12:8: error: assignment of read-only location ‘* it’
    *it = 100;
        ^