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;
^