C++ std::vector

En C++, std::vector est un container permettant de mémoriser des tableaux dont la taille peut évoluer dynamiquement. std::vector n'est pas une classe pour manipuler des vecteurs mathématiques. Un élément std::vector est un tableau.

Les avantages de std::vector sont:

Déclaration

Pour utiliser les containers std::vector, il faut inclure la bibliothèque suivante :

#include <vector>

Comme std::vector est un container, il faut spécifier the type des éléments que le tableau va contenir au moment de l'appel du constructeur. Dans l'exemple ci-dessous, nous créons un vecteur vide (ou un tableau vide) destiné à contenir des entiers :

std::vector<int> myVector;

On peut créer des vecteurs de différents types :

std::vector<char> myVectorOfCharacters;
std::vector<float> myVectorOfFloats;
std::vector<myCLass> myVectorOfObjects;

Ajout d'un élement

Pour ajouter un nouvel élément à la fin du vecteur, on utilise la méthode .push_back() (plus de détails):

myVector.push_back(12);

Après cette ligne, la taille du vecteur est augmenté de 1 et la dernière cellule contient 12. Sur l'exemple ci-dessous, on ajoute 3 valeurs dans le vecteur :

std::vector<int> myVector;
myVector.push_back(17);
myVector.push_back(25);
myVector.push_back(12);

Le vecteur contient maintenant les valeurs suivantes:

Le vecteur après l'ajout des 3 valeurs

Accès à un élément

Il y a deux façons d'accéder aux éléments du vecteur. la première est d'utiliser la syntaxe classique des tableau avec des crochets :

myVector[2];

La seconde option est d'utilser la méthode .at() (plus de détails):

myVector.at(2);

La seconde option est pratique pour accéder aux élément sur un pointeur : pointer->at(5).

Modifier un élément

l'accès aux élements fonctionne aussi en écriture:

myVector[0] = 15;

Le code ci-dessous a le même effet que :

myVector.at(0) = 15;

Taille du vecteur

La méthode .size() retourne la taille du vecteur (le nombre de cellules du tableau) :

std::vector<int> myVector;
myVector.push_back(17);
myVector.push_back(25);
myVector.push_back(12);

// Display 3
std::cout << myVector.size() << endl;

Supprimer un élement

La méthode .erase() est utilisée pour retirer un élément du tableau. Notons que la fonction attends un itérateur comme paramètre. Vous ne pouvez pas écrire :

myVector.erase(0);

Pour supprimer le premier élement, vous devez écrire :

myVector.erase(myvector.begin());

Pour supprimer le troisème élément, il faut écrire :

myVector.erase(myvector.begin()+2);

Exemple complet

Le code ci-dessous résume les différentes opérations exposées sur cette page :

Voir aussi


Dernière mise à jour : 21/10/2022