Bibliothèque standard C++ : aperçu complet et exemples de code

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Bibliothèque standard C++ : aperçu complet



La bibliothèque standard C++ (souvent appelée STL — Standard Template Library) est un ensemble puissant de classes et de fonctions template inclus dans tout compilateur C++. Elle fournit des solutions prêtes à l'emploi, éprouvées et optimisées pour les tâches de programmation les plus courantes : de la gestion des tableaux dynamiques et des chaînes de caractères aux algorithmes complexes de tri et de recherche. L'utilisation de la bibliothèque standard accélère considérablement le développement, améliore la fiabilité du code et facilite sa maintenance.



Dans cet article, nous allons détailler les principaux composants de la bibliothèque standard C++ : conteneurs, algorithmes, itérateurs, chaînes de caractères, flux d'entrée/sortie et pointeurs intelligents. Chaque section sera accompagnée d'exemples de code pratiques.



Conteneurs (Containers)



Les conteneurs sont des classes conçues pour stocker et organiser des ensembles de données. Ils se divisent en trois catégories principales :



  • Conteneurs séquentiels : stockent les éléments dans un ordre linéaire. Principaux représentants : std::vector (tableau dynamique), std::list (liste doublement chaînée), std::deque (file d'attente double).
  • Conteneurs associatifs : stockent les éléments de manière triée, offrant une recherche rapide. Exemples : std::set (ensemble), std::map (dictionnaire "clé-valeur").
  • Conteneurs associatifs non ordonnés (C++11) : utilisent des tables de hachage pour un accès encore plus rapide. Exemples : std::unordered_set, std::unordered_map.


Exemple d'utilisation de std::vector et std::map :



#include <iostream>#include <vector>#include <map>#include <string>

int main() { // Conteneur séquentiel std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Ajout à la fin

std::cout << "Vecteur : "; for (int n : numbers) { std::cout << n << " "; } std::cout << std::endl;

// Conteneur associatif std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25;

std::cout << "Âge d'Alice : " << ages["Alice"] << std::endl; return 0;}


Itérateurs (Iterators)



Les itérateurs sont un moyen généralisé d'accéder aux éléments d'un conteneur. Ils fonctionnent comme des "pointeurs intelligents" et permettent de parcourir uniformément n'importe quel conteneur. Les principaux types d'itérateurs sont : begin() (pointeur vers le premier élément) et end() (pointeur vers l'élément après le dernier).



Exemple d'utilisation d'un itérateur pour parcourir un std::list :



#include <iostream>#include <list>

int main() { std::list<double> prices = {19.99, 29.99, 9.99};

// Utilisation d'un itérateur for (auto it = prices.begin(); it != prices.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; return 0;}


Algorithmes (Algorithms)



La bibliothèque <algorithm> contient des dizaines de fonctions prêtes à l'emploi pour travailler avec des séquences de données : tri, recherche, copie, transformation et bien plus encore. Les algorithmes fonctionnent avec des itérateurs, ce qui les rend universels.



Algorithmes populaires :

  • std::sort — tri d'une plage.
  • std::find — recherche de la première occurrence d'une valeur.
  • std::copy — copie d'éléments.
  • std::accumulate — somme des éléments (de <numeric>).


Exemple de tri et de recherche :



#include <iostream>#include <vector>#include <algorithm>

int main() { std::vector<int> data = {5, 2, 8, 1, 9

Recommendations