Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité
Introduction et syntaxe de base
Pointeurs et fonctions
Programmation OO
Structures de données
La bibliothèque standard (STL)

La classe array en C++ (bibliothèque STL) <array>

 

La classe array en C++ (bibliothèque STL) <array>

La classe array définie dans <array> est une collection d'éléments du même type de données stockés dans des emplacements de mémoire continue.

Les objets array sont des conteneurs de séquences de taille fixe : ils contiennent un nombre spécifique d'éléments ordonnés dans une séquence linéaire stricte.

En fait, en programmation, nous utilisons rarement un tel conteneur statique car dans les scénarios en temps réel, nous avons besoin de conteneurs qui peuvent se développer ou se réduire dynamiquement.

Syntaxe
array<type_objets, taille> nomTab;

Le code ci-dessus crée un tableau vide de type_objets avec une taille maximale taille. Cependant, si vous souhaitez créer un tableau avec des éléments, vous pouvez le faire en utilisant simplement l'opérateur :

Syntaxe
array<type_objets, n> nomTab = {val1, val2,…,valn};

Fonctions membres de la classe array

méthode at()

Cette méthode renvoie la valeur dans le tableau à l'index donné. Si l'index donné est supérieur à la taille du tableau, l'exception out_of_range est levée.

Syntaxe
nomTab.at(index);

Opérateur []

L'utilisation de l'opérateur [ ] est la même que pour les tableaux normaux. Il renvoie la valeur à l’index donné dans le tableau.

Syntaxe
nomTab[index]

Fonctions front() et back()

  •  front renvoie le premier élément du tableau.
  •  back renvoie le dernier élément du tableau.
Syntaxe
nomTab.front()
nomTab.back()
        

Fonction fill()

Cette méthode attribue la valeur donnée à chaque élément du tableau.

Syntaxe
nomTab.fill(valeur)

Fonction swap 

Cette méthode échange le contenu de deux tableaux de même type et de même taille. Elle permute par index, ainsi l'élément d'index i du premier tableau sera permuté avec l'élément d'index i du deuxième tableau, et si l'échange de l'un des deux éléments génère une exception, swap() génère une exception.

Syntaxe
nomTab2.swap(nomTab2)

Taille du tableau

La classe array a trois fonctions membres liées à la taille d'une list.

  •  size() : Renvoie la taille actuelle
  •  max_size() : Renvoie la taille maximale
  •  empty() : Renvoie true si la list est vide
Syntaxe
nomTab.size(); 
nomTab.max_size(); 
nomTab.empty(); 
        

Fonctions begin() et end()

  •  begin() : Cette méthode renvoie l'itérateur pointant vers le premier élément du tableau.
  •  end() : Cette méthode renvoie un itérateur pointant vers un élément à côté du dernier élément du tableau
Syntaxe
nomTab.begin()
nomTab.end()
        

Exemple complet

#include<iostream>
#include<array> // classe array (conteneur)

using namespace std;

int main (){

    array<int,5> tab={1,5,8,9,10};
    array<int,8> tab2;
    array<int,5> tab3={20,30,50,40,60};


    cout<< "Contenu du tableau tab: "<<"\n";
    for (int i=0; i<tab.size(); i++) {
		  cout << tab.at(i) <<"  ";
	}
    cout << "\n";

    cout<< "La taille est : "<< tab.size()<<endl;
    cout<< "La taille maximale est : "<< tab.max_size()<<endl;

    cout<< "Le premier element est : "<< tab.front() <<endl;
    cout<< "Le dernier element est : "<< tab.back() <<endl;

    cout << "\n";
    tab2.fill(7);
    cout<< "Contenu du tableau tab2 : "<<"\n";
    for (int i=0; i < tab2.size(); i++) {
		  cout << tab2[i] <<"  ";
	}
    cout << "\n";

    cout << "\n";
    tab.swap(tab3); // echanger le contenu de tab et tab3
    cout<< "Contenu du tableau tab apres echange: "<<"\n";
    for (int i=0; i < tab.size(); i++) {
		  cout << tab.at(i) <<"  ";
	}
    cout << "\n";
    cout<< "Contenu du tableau tab3 apres echange: "<<"\n";
    for (int i=0; i < tab3.size(); i++) {
		  cout << tab3.at(i) <<"  ";
	}
    cout << "\n\n";
    cout<< "Contenu du tableau tab en utilisant un iterateur: "<<"\n";
    array::iterator it = tab.begin();
    while(it < tab.end()){
        cout<< *it << "  ";
        it=std::next(it);
    }

    return 0;
}
        
Résultat
Contenu du tableau tab: 
1  5  8  9  10
La taille est : 5
La taille maximale est : 5
Le premier element est : 1
Le dernier element est : 10

Contenu du tableau tab2 :
7  7  7  7  7  7  7  7

Contenu du tableau tab apres echange:
20  30  50  40  60
Contenu du tableau tab3 apres echange:
1  5  8  9  10

Contenu du tableau tab en utilisant un iterateur:
20  30  50  40  60
                

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.