Le conteneur vector en C++
<vector>. Elle représente une séquence dynamique d’éléments de même type stockés en mémoire contiguë et accessibles par indice.Un vector fournit :
- un accès aléatoire rapide aux éléments (comme un tableau),
- une insertion et une suppression efficaces à la fin du conteneur,
- un redimensionnement automatique lorsque de nouveaux éléments sont ajoutés.
Un vecteur peut être vu comme une séquence d’éléments avec une extrémité ouverte où les nouveaux éléments peuvent être ajoutés facilement.

En interne, un vecteur est implémenté comme un tableau dynamique alloué sur le tas. Lorsqu’un vecteur devient plein, un nouveau tableau plus grand est alloué et les éléments existants sont copiés vers ce nouveau tableau.
Constructeurs et opérateur d’affectation
La classe vector possède plusieurs constructeurs permettant de créer et initialiser un vecteur.
vector<T> vec; // vecteur vide
vector<T> vec(n); // vecteur de n éléments
vector<T> vec(n, valeur); // n éléments initialisés avec valeur
vector<T> vec(debut, fin); // vecteur construit à partir d'une plage
vector<T> vec(autreVector); // constructeur de copie
vector<T> vec = autreVector; // opérateur d’affectationdebut est inclus dans la copie mais pas l’élément fin.Taille et capacité
Les vecteurs disposent de plusieurs fonctions membres permettant de gérer leur taille et leur capacité mémoire.
vec.size(); // nombre d’éléments
vec.max_size(); // taille maximale possible
vec.resize(n); // redimensionner le vecteur
vec.empty(); // true si le vecteur est vide
vec.capacity(); // capacité mémoire actuelle
vec.reserve(n); // réserver de la mémoire| Fonction | Description |
|---|---|
size() | Renvoie le nombre d’éléments présents dans le vecteur. |
capacity() | Renvoie la capacité mémoire actuellement allouée. |
resize(n) | Change la taille du vecteur à n éléments. |
reserve(n) | Alloue de la mémoire pour au moins n éléments. |
Accéder aux éléments
Les éléments d’un vecteur peuvent être accédés de différentes manières.
vec.front(); // premier élément
vec.back(); // dernier élément
vec[i]; // accès direct par indice
vec.at(i); // accès sécurisé avec vérificationvec.at(i) lorsque vous voulez vérifier que l’indice est valide. Si l’indice est hors limites, une exception sera levée.Insertion d’éléments
Les vecteurs permettent d’ajouter des éléments de différentes manières.
vec.push_back(valeur); // ajouter à la fin
vec.insert(pos, valeur); // insérer avant pos
vec.insert(pos, n, valeur); // insérer n copies
vec.insert(pos, premier, dernier); // insérer une plageSuppression d’éléments
vec.pop_back(); // supprimer le dernier élément
vec.erase(pos); // supprimer un élément
vec.erase(debut, fin); // supprimer une plage
vec.clear(); // supprimer tout le vecteurExemple complet d'utilisation
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
vector<string> etd;
etd.push_back("Mostafa");
etd.push_back("Omar");
etd.push_back("Sara");
etd.push_back("Mohamed");
etd.push_back("Moneim");
cout<<"Taille : "<SortieTaille : 5
Capacite : 8
Liste des etudiants :
Mostafa Omar Dounia Sara Mohamed Moneim
Apres suppression :
Mostafa Omar Dounia Sara Mohamed
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.