Bibliothèque de tableaux C ++ - Fonction cbegin ()

La description

La fonction C ++ std::array::cbegin()renvoie un itérateur constant qui pointe vers le début du tableau. L'itérateur retourné par cette méthode peut être utilisé pour itérer le conteneur mais ne peut pas être utilisé pour modifier le contenu du tableau.

Déclaration

Voici la déclaration de la fonction std :: array :: cbegin () sous forme d'en-tête std :: array.

const_iterator cbegin() const noexcept;

Paramètres

Aucun

Valeur de retour

Renvoie un itérateur de constat pointant vers le début du tableau.

Des exceptions

Cette fonction membre ne lève jamais d'exception.

Complexité temporelle

Constante ie O (1)

Exemple

L'exemple suivant montre l'utilisation de la fonction 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

1 2 3 4 5

Comme cette méthode retourne l'itérateur const, nous ne pouvons pas utiliser cet itérateur pour modifier le contenu du tableau. Toute tentative de modification d'un élément du tableau signalera une erreur de compilation.

#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 compilation du programme ci-dessus échouera avec le message d'erreur suivant.

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