La STL (Standard Template Library) en C++

A

Amine Abidi - Lead Software Engineer C++/Qt - Co-fondateur PointerLab

February 1, 2025

La STL (Standard Template Library) en C++

Introduction à la bibliothèque stand en C++ (STL)

La Standard Template Library (STL) est une collection puissante d'outils en C++ qui simplifient la manipulation des données. Elle regroupe trois éléments principaux :

  • Les conteneurs : structures de données comme les vecteurs, listes et maps.
  • Les algorithmes : fonctions pour trier, rechercher, ou transformer des données.
  • Les itérateurs : outils pour parcourir les éléments d'un conteneur.

Cet article vous guidera à travers les bases de la STL, ses conteneurs courants, et ses algorithmes essentiels pour écrire un code plus propre, efficace et modulaire.


1. Les conteneurs courants dans la STL

Les conteneurs de la STL offrent une abstraction puissante pour stocker et manipuler des collections de données. Voici les principaux conteneurs :

1.1. std::vector

Un vecteur est un tableau dynamique qui peut changer de taille. Il est rapide pour les accès par indice, mais peut être coûteux lors des insertions/suppressions en milieu de tableau.

#include 
#include 
- using namespace std;

- int main() {
- vector nums = {1, 2, 3, 4};
- nums.push_back(5);  // Ajoute un élément à la fin
- nums.pop_back();    // Supprime le dernier élément

- for (int num : nums) {
        cout 
#include 
- using namespace std;

- int main() {
- array nums = {1, 2, 3, 4};

- for (int num : nums) {
        cout 
#include 
- using namespace std;

- int main() {
- deque nums = {1, 2, 3};
- nums.push_front(0); // Ajoute un élément au début
- nums.push_back(4);  // Ajoute un élément à la fin

- for (int num : nums) {
        cout 
#include 
- using namespace std;

- int main() {
- list nums = {1, 2, 3};
- nums.push_back(4);
- nums.push_front(0);

- for (int num : nums) {
        cout 
#include 
- using namespace std;

- int main() {
- set nums = {1, 2, 3, 2}; // Élimine les doublons

- for (int num : nums) {
        cout 
#include 
#include 
- using namespace std;

- int main() {
- vector nums = {4, 1, 3, 2};
- sort(nums.begin(), nums.end());  // Trie en ordre croissant

- for (int num : nums) {
        cout 
#include 
#include 
- using namespace std;

- int main() {
- vector nums = {1, 2, 3, 4};
- auto it = find(nums.begin(), nums.end(), 3);

- if (it != nums.end()) {
        cout 
#include 
- using namespace std;

- int main() {
- vector nums = {1, 2, 3};

- for (vector::iterator it = nums.begin(); it != nums.end(); ++it) {
        cout << *it << " ";
    }
    return 0;
}

4. Exercice pratique

Énoncé :

  1. Créez un std::map pour stocker des paires nom-note.
  2. Implémentez une fonction qui trie les notes par ordre décroissant en utilisant std::sort et un std::vector.
  3. Affichez les résultats triés.

Conclusion

La STL est un élément incontournable du langage C++ pour manipuler efficacement les données. Grâce à ses conteneurs, algorithmes et itérateurs, elle permet d’écrire un code plus clair et modulaire.

Découvrez l'ensemble de notre blog sur le C++