La bibliothèque de modèles standard (STL) est un ensemble de classes de modèles C++ permettant de fournir des structures de données et des fonctions de programmation communes telles que des listes, des piles, des tableaux, etc. Il s'agit d'une bibliothèque de classes de conteneurs, d'algorithmes et d'itérateurs. C'est une bibliothèque généralisée et donc ses composants sont paramétrés. Connaissance pratique de classes de modèles est une condition préalable pour travailler avec STL.
La bibliothèque de modèles standard C++ (STL) est une collection d'algorithmes, de structures de données et d'autres composants qui peuvent être utilisés pour simplifier le développement de programmes C++. La STL fournit une gamme de conteneurs, tels que des vecteurs, des listes et des cartes, ainsi que des algorithmes pour rechercher, trier et manipuler les données.
L’un des principaux avantages de la STL est qu’elle permet d’écrire du code générique et réutilisable pouvant être appliqué à différents types de données. Cela signifie que vous pouvez écrire un algorithme une seule fois, puis l'utiliser avec différents types de données sans avoir à écrire de code séparé pour chaque type.
La STL fournit également un moyen d'écrire du code efficace. De nombreux algorithmes et structures de données de la STL sont implémentés à l'aide d'algorithmes optimisés, ce qui peut entraîner des temps d'exécution plus rapides par rapport au code personnalisé.
la molette de la souris ne défile pas correctement
Certains des éléments clés du STL comprennent :
- Conteneurs : La STL fournit une gamme de conteneurs, tels que des vecteurs, des listes, des cartes, des ensembles et des piles, qui peuvent être utilisés pour stocker et manipuler des données.
- Algorithmes : la STL fournit une gamme d'algorithmes, tels que le tri, la recherche et la recherche binaire, qui peuvent être utilisés pour manipuler les données stockées dans des conteneurs.
- Itérateurs : les itérateurs sont des objets qui permettent de parcourir les éléments d'un conteneur. La STL fournit une gamme d'itérateurs, tels que forward_iterator, bidirectionnel_iterator et random_access_iterator, qui peuvent être utilisés avec différents types de conteneurs.
- Objets de fonction : les objets de fonction, également appelés foncteurs, sont des objets qui peuvent être utilisés comme arguments de fonction pour les algorithmes. Ils permettent de transmettre une fonction à un algorithme, vous permettant ainsi de personnaliser son comportement.
- Adaptateurs : les adaptateurs sont des composants qui modifient le comportement des autres composants de la STL. Par exemple, l'adaptateur reverse_iterator peut être utilisé pour inverser l'ordre des éléments dans un conteneur.
En utilisant le STL, vous pouvez simplifier votre code, réduire le risque d'erreurs et améliorer les performances de vos programmes.
STL comporte 4 composants :
- Algorithmes Conteneurs Foncteurs Itérateurs
1. Algorithmes
L'algorithme d'en-tête définit une collection de fonctions spécialement conçues pour être utilisées sur une gamme d'éléments. Ils agissent sur les conteneurs et fournissent des moyens pour diverses opérations sur le contenu des conteneurs.
- Algorithme
- Tri
- Recherche
- Algorithmes STL importants
- Algorithmes de tableau utiles
- Opérations de partition
- Numérique
- classe valarray
2. Conteneurs
Les conteneurs ou classes de conteneurs stockent des objets et des données. Il existe au total sept classes de conteneurs standards de première classe et trois classes d'adaptateurs de conteneurs et seulement sept fichiers d'en-tête qui donnent accès à ces conteneurs ou adaptateurs de conteneurs.
- Conteneurs de séquence : implémentez des structures de données accessibles de manière séquentielle.
- Adaptateurs de conteneur : fournissent une interface différente pour les conteneurs séquentiels.
- Conteneurs associatifs : implémentez des structures de données triées qui peuvent être recherchées rapidement (complexité O(log n)).
- Conteneurs associatifs non ordonnés : implémentez des structures de données non ordonnées qui peuvent être rapidement recherchées
- unordered_set (Introduit en C++11)
- unordered_multiset (Introduit en C++11)
- carte_non ordonnée (Introduit en C++11)
- unordered_multimap (Introduit en C++11)
3. Foncteurs
La STL inclut des classes qui surchargent l'opérateur d'appel de fonction. Les instances de ces classes sont appelées objets fonction ou foncteurs. Les foncteurs permettent de personnaliser le fonctionnement de la fonction associée à l'aide de paramètres à passer. Doit lire – Foncteurs
4. Itérateurs
Comme leur nom l'indique, les itérateurs sont utilisés pour travailler sur une séquence de valeurs. Ils constituent la fonctionnalité majeure qui permet la généralité en STL. Doit lire – Itérateurs
Bibliothèque d'utilitaires
Défini dans l'en-tête . Doit lire – Paire en C++ STL
Pour plus de détails, reportez-vous au Articles récents sur STL !
Avantages de la bibliothèque de modèles standard C++ (STL) :
- Réutilisabilité : l'un des principaux avantages de la STL est qu'elle fournit un moyen d'écrire du code générique et réutilisable pouvant être appliqué à différents types de données. Cela peut conduire à un code plus efficace et plus maintenable.
- Algorithmes efficaces : de nombreux algorithmes et structures de données de la STL sont implémentés à l'aide d'algorithmes optimisés, ce qui peut entraîner des temps d'exécution plus rapides par rapport au code personnalisé.
- Lisibilité améliorée du code : la STL offre une manière cohérente et bien documentée de travailler avec les données, ce qui peut rendre votre code plus facile à comprendre et à maintenir.
- Grande communauté d'utilisateurs : La STL est largement utilisée, ce qui signifie qu'il existe une grande communauté de développeurs qui peuvent fournir une assistance et des ressources, telles que des tutoriels et des forums.
Inconvénients de la bibliothèque de modèles standard C++ (STL) :
- Courbe d'apprentissage : la STL peut être difficile à apprendre, en particulier pour les débutants, en raison de sa syntaxe complexe et de l'utilisation de fonctionnalités avancées telles que les itérateurs et les objets fonction.
- Manque de contrôle : Lorsque vous utilisez la STL, vous devez vous fier à l'implémentation fournie par la bibliothèque, ce qui peut limiter votre contrôle sur certains aspects de votre code.
- Performances : dans certains cas, l'utilisation du STL peut entraîner des temps d'exécution plus lents par rapport au code personnalisé, en particulier lorsqu'il s'agit de petites quantités de données.