C ++ Array Library - Função cbegin ()

Descrição

A função C ++ std::array::cbegin()retorna um iterador constante que aponta para o início da matriz. O iterador retornado por este método pode ser usado para iterar o contêiner, mas não pode ser usado para modificar o conteúdo do array.

Declaração

A seguir está a declaração para o cabeçalho da função std :: array :: cbegin () std :: array.

const_iterator cbegin() const noexcept;

Parâmetros

Nenhum

Valor de retorno

Retorna um iterador constat apontando para o início da matriz.

Exceções

Esta função de membro nunca lança exceção.

Complexidade de tempo

Constante, ou seja, O (1)

Exemplo

O exemplo a seguir mostra o uso da função 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

1 2 3 4 5

Como este método retorna const iterator, não podemos usar este iterator para modificar o conteúdo do array. Qualquer tentativa de modificar o elemento da matriz reportará um erro de compilação.

#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;
}

A compilação do programa acima falhará com a seguinte mensagem de erro.

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