Bibliothèque standard C++ : aperçu complet
La bibliothèque standard C++ (C++ Standard Library) est un ensemble puissant de classes, fonctions, macros et modèles fourni avec tout compilateur C++. Elle propose des solutions prêtes à l'emploi pour la plupart des tâches courantes : de la gestion des conteneurs de données aux interactions réseau et au multithreading. Dans cet article, nous analyserons les principaux composants de la bibliothèque, montrerons des exemples de code et expliquerons comment utiliser efficacement ses fonctionnalités.
Composants principaux de la bibliothèque standard
La bibliothèque standard est divisée en plusieurs grandes sections :
- STL (Standard Template Library) — conteneurs, itérateurs, algorithmes et objets fonctionnels.
- Entrée/Sortie — flux (
iostream), flux de fichiers (fstream), flux de chaînes (sstream). - Chaînes — classes
std::stringetstd::string_view. - Opérations numériques — fonctions mathématiques (
cmath), nombres aléatoires (random), nombres complexes (complex). - Multithreading — threads (
thread), mutex, variables conditionnelles. - Utilitaires —
std::optional,std::variant,std::any, pointeurs intelligents (shared_ptr,unique_ptr).
Conteneurs STL
Les conteneurs sont des classes template conçues pour stocker des collections d'objets. Ils sont divisés en conteneurs séquentiels et associatifs.
Conteneurs séquentiels
std::vector— tableau dynamique. Accès rapide par index, insertion lente au milieu.std::deque— file d'attente bidirectionnelle. Insertion/suppression rapide aux deux extrémités.std::list— liste doublement chaînée. Insertion/suppression rapide à n'importe quel endroit, mais accès lent par index.
#include <iostream>#include <vector>
int main() { std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Ajout à la fin for (int n : numbers) { std::cout << n << " "; } return 0;}Conteneurs associatifs
std::set— ensemble d'éléments uniques (trié).std::map— dictionnaire « clé-valeur » (trié par clé).std::unordered_set/std::unordered_map— tables de hachage (non triées, mais plus rapides).
#include <iostream>#include <map>
int main() { std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25; for (const auto& [name, age] : ages) { std::cout << name << ": " << age << std::endl; } return 0;}Algorithmes
La bibliothèque <algorithm> contient plus de 100 algorithmes pour travailler avec des séquences : tri, recherche, copie, transformation, etc. Tous les algorithmes fonctionnent via des itérateurs, ce qui les rend universels.
#include <iostream>#include <algorithm>#include <vector>
int main() { std::vector<int> v = {5, 2, 8, 1, 9}; std::sort(v.begin(), v.end()); // Tri par ordre croissant auto it = std::find(v.begin(), v.end(), 8); if (it != v.end()) { std::cout << "Trouvé : " << *it << std::endl; } return 0;}Travail avec les chaînes
La classe std::string fournit des méthodes pratiques pour travailler avec le texte : recherche, remplacement, concaténation, comparaison. En C++17, std::string_view a été ajouté pour une visualisation non propriétaire des chaînes.
#include Aussi dans la bibliothèque
Configuration des applications Node.js : meilleures bibliothèques et pratiques
Travailler avec Markdown en TypeScript : bibliothèques, parseurs et outils
gRPC pour C++ : bibliothèques, exemples et guide d'utilisation