Vue d’ensemble de la bibliothèque standard C++ (STL)
Toutes les entités de bibliothèque C++ sont déclarées ou définies dans un ou plusieurs en-têtes standard. Cette implémentation inclut deux autres en-têtes et <hash_map>
<hash_set>
, qui ne sont pas requis par la norme C++. Pour obtenir la liste complète des en-têtes pris en charge par cette implémentation, consultez la référence des fichiers d’en-tête.
La norme C++ définit deux types de bibliothèques conformes :
- Implémentation hébergée qui prend en charge tous les en-têtes de bibliothèque standard requis décrits par la norme ISO C++.
- Implémentation autonome, qui ne nécessite qu’un sous-ensemble des en-têtes de bibliothèque standard. Le sous-ensemble requis est :
Sous-ensemble d’en-têtes standard | ||
---|---|---|
<atomic> (déclaration au moins atomic_signed_lock_free et atomic_unsigned_lock_free ) |
<cstdint> |
<ranges> |
<bit> |
<cstdlib> (déclaration au moins abort , , atexit at_quick_exit , exit , quick_exit ) |
<ratio> |
<cfloat> |
<exception> |
<tuple> |
<climits> |
<functional> |
<typeinfo> |
<compare> |
<initializer_list> |
<source_location> |
<concepts> |
<iterator> |
<type_traits> |
<coroutine> |
<limits> |
<utility> |
<cstdarg> |
<memory> |
<version> |
<cstddef> |
<new> |
Les en-têtes suivants sont déconseillés depuis C++11 : <ciso646>
, <cstdalign>
et <cstdbool>
.
D’autres différences entre les implémentations libres et hébergées sont les suivantes :
- Les implémentations hébergées nécessitent une fonction globale nommée
main
. Une implémentation autonome peut définir ses propres fonctions de démarrage et de terminaison. - Les implémentations hébergées doivent prendre en charge plusieurs threads en même temps. Les implémenteurs d’implémentations standard déterminent si leur bibliothèque prend en charge les threads simultanés.
La bibliothèque standard Microsoft C++ répond à la fois aux exigences standard standard et hébergées.
Les en-têtes de bibliothèque C++ ont deux subdivisions plus larges :
iostreams, conventions.
Conventions de référence de la bibliothèque C++ Standard (STL).
Cette section comprend les sections suivantes :
Pour plus d’informations sur les bibliothèques Runtime Visual C++, consultez Fonctionnalités de bibliothèque CRT.
Remarque
L’implémentation de microsoft de la bibliothèque standard C++ est souvent appelée bibliothèque de modèles STL ou Standard. Bien que C++ Standard Library soit le nom officiel de la bibliothèque tel que défini dans ISO 14882, en raison de l’utilisation populaire de « STL » et de « Bibliothèque de modèles standard » dans les moteurs de recherche, nous utilisons parfois ces noms pour faciliter la recherche de notre documentation. Du point de vue historique, « STL » a initialement fait référence à la bibliothèque de modèles standard écrite par Alexander Stepanov. Certaines parties de cette bibliothèque ont été normalisées dans la bibliothèque standard C++, ainsi que la bibliothèque runtime ISO C, les parties de la bibliothèque Boost et d’autres fonctionnalités. Parfois, « STL » est également utilisé pour faire référence aux conteneurs et aux algorithmes de la bibliothèque standard C++ adaptée à partir du STL de Stepanov. Dans cette documentation, la bibliothèque de modèles standard (STL) fait référence à la bibliothèque standard C++ dans son ensemble.