C ++ Array Library - Funzione cbegin ()

Descrizione

La funzione C ++ std::array::cbegin()restituisce un iteratore costante che punta all'inizio della matrice. L'iteratore restituito da questo metodo può essere utilizzato per iterare il contenitore ma non può essere utilizzato per modificare il contenuto dell'array.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione std :: array :: cbegin () nel formato std :: array header.

const_iterator cbegin() const noexcept;

Parametri

Nessuna

Valore di ritorno

Restituisce un iteratore constat che punta all'inizio della matrice.

Eccezioni

Questa funzione membro non genera mai eccezioni.

Complessità temporale

Costante cioè O (1)

Esempio

L'esempio seguente mostra l'utilizzo della funzione 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;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

1 2 3 4 5

Poiché questo metodo restituisce const iterator, non possiamo utilizzare questo iteratore per modificare il contenuto dell'array. Qualsiasi tentativo di modificare l'elemento dell'array riporterà un errore di compilazione.

#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 compilazione del programma precedente fallirà con il seguente messaggio di errore.

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