Importer la bibliothèque standard C++
En programmation C++, la bibliothèque standard est un composant très important.
La bibliothèque standard fournit un grand nombre de fonctions et de classes prédéfinies qui nous aident à accomplir diverses tâches plus efficacement. Pour utiliser ces fonctionnalités, nous devons inclure les fichiers d'en-tête de la bibliothèque standard correspondants dans nos programmes.
Cet article présentera en détail comment importer la bibliothèque standard en C++ et expliquera certains fichiers d'en-tête courants de la bibliothèque standard ainsi que leurs utilisations.
Qu'est-ce que la bibliothèque standard C++ ?
La bibliothèque standard C++ fait partie du langage C++. Elle contient une série de classes et de fonctions pour gérer des tâches de programmation courantes, telles que les entrées/sorties, les opérations sur les chaînes, les calculs mathématiques, la gestion de conteneurs, etc.
L'objectif de conception de la bibliothèque standard est de fournir des outils efficaces, portables et faciles à utiliser pour aider les développeurs à créer rapidement des applications.
Comment importer la bibliothèque standard C++ ?
1. Utiliser #include pour inclure des fichiers d'en-tête
En C++, nous utilisons#includeLes directives de préprocesseur sont utilisées pour importer les fichiers d'en-tête de la bibliothèque standard.
#includeLa directive indique au compilateur d'insérer le contenu du fichier d'en-tête spécifié dans le fichier actuel lors de la compilation. Les fichiers d'en-tête contiennent généralement des déclarations de fonctions, des définitions de classes, des définitions de macros et d'autres contenus.
Syntaxe de base
La syntaxe pour importer la bibliothèque standard C++ est la suivante :
#include <header_file>
où,<header_file>est le nom du fichier d'en-tête de la bibliothèque standard.
Exemple
Exemple
#include <vector> // importer la bibliothèque de conteneur vector
#include <cmath> // importer la bibliothèque de fonctions mathématiques
Dans l'exemple ci-dessus, nous avons importé trois fichiers d'en-tête de bibliothèque standard couramment utilisés :
<iostream>: fournit des fonctionnalités de flux d'entrée/sortie, telles questd::coutetstd::cin。<vector>Fournit l'implémentation du conteneur vector, qui est utilisé pour stocker des tableaux dynamiques.<cmath>: fournit des fonctions mathématiques courantes, telles quesqrt()、sin()、cos()etc.
2. Utiliser des modules pour importer la bibliothèque standard (C++20/C++23)
À partir de C++20, C++ a introduit les modules, et dans C++23, la prise en charge des modules de bibliothèque standard a été encore améliorée.
Les modules offrent un moyen plus efficace et plus sûr d’importer la bibliothèque standard.
Compilation plus rapideLes modules ne sont compilés qu’une seule fois, et les imports suivants utilisent directement l’interface binaire compilée.
Meilleure isolationLes modules ne divulguent pas les définitions de macros et les symboles privés, ce qui évite les conflits de noms.
Dépendances clairesLe mécanisme d’import et d’export des modules rend les dépendances du code plus claires.
Exemple
int main() {
std::cout << "Hello, C++23 Modules!\n";// utiliser std::cout pour afficher
return 0;
}
Ou importer des parties spécifiques de la bibliothèque standard :
Exemple
import std.iostream;// importer la bibliothèque de flux d’entrée/sortie
int main() {
std::cout << "Hello, C++23 Modules!\n";
return 0;
}
Actuellement, la prise en charge des modules C++ par les principaux compilateurs s’améliore progressivement.
Voici l’état de prise en charge et les méthodes d’utilisation de certains compilateurs :
GCCNécessite l'activation de la norme C++23 et la prise en charge des modules.
Exemple de commande de compilation :
g++ -std=c++23 -fmodules-ts -o program main.cpp
ClangNécessite l'activation de la norme C++23 et la prise en charge des modules.
Exemple de commande de compilation :
clang++ -std=c++23 -fmodules -o program main.cpp
MSVC(Visual Studio)Nécessite l'activation de la norme C++23 et la prise en charge des modules.
Exemple de commande de compilation :
cl /std:c++23 /experimental:module /EHsc /Fe:program main.cpp
Fichiers d'en-tête courants de la bibliothèque standard C++
La bibliothèque standard C++ contient de nombreux fichiers d'en-tête, chacun fournissant des fonctionnalités spécifiques.
Voici quelques fichiers d'en-tête courants de la bibliothèque standard et leurs utilisations :
<iostream>
<iostream>Il s'agit de l'un des fichiers d'en-tête les plus couramment utilisés de la bibliothèque standard C++, fournissant des fonctionnalités de flux d'entrée/sortie. Grâce à ce fichier d'en-tête, nous pouvons utiliserstd::coutetstd::cinpour effectuer une sortie standard et une entrée standard.
Exemple
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
<vector>
<vector>fournit l'implémentation du conteneur vector. Un vector est un tableau dynamique qui peut ajuster dynamiquement sa taille à l'exécution. Il fournit de nombreuses fonctions membres utiles, telles quepush_back()、size()etc.
Exemple
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.push_back(6);
pour (int i : vec) {
std::cout << i << " ";
}
return 0;
}
<cmath>
<cmath>Il fournit des fonctions mathématiques couramment utilisées, telles que la racine carrée, les fonctions trigonométriques, les fonctions exponentielles, etc. Ces fonctions sont généralement utilisées pour des calculs numériques.
Exemple
#include <iostream>
int main() {
double x = 4.0;
double y = std::sqrt(x);
std::cout << "Racine carrée de " << x << " est " << y << std::endl;
return 0;
}
<string>
<string>Il fournit l'implémentation d'une classe string. La classe string en C++std::stringest plus facile à utiliser que les tableaux de caractères en C, et fournit de nombreuses fonctions membres utiles, telles quelength()、substr()etc.
Exemple
#include <iostream>
int main() {
std::string str = "Bonjour, C++!";
std::cout << "Longueur de la chaîne: " << str.length() << std::endl;
return 0;
}
<algorithm>
<algorithm>Il fournit de nombreux algorithmes couramment utilisés, tels que le tri, la recherche, le parcours, etc. Ces algorithmes peuvent être appliqués à divers conteneurs, tels que les vecteurs, les listes, etc.
Exemple
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {5, 3, 1, 4, 2};
std::sort(vec.begin(), vec.end());
pour (int i : vec) {
std::cout << i << " ";
}
return 0;
}
Notes
namespaceLes fonctions et classes de la bibliothèque standard C++ se trouvent généralement dans
stdl'espace de noms. Par conséquent, lorsque vous utilisez ces fonctions et classes, vous devez généralement ajouterstd::Préfixe, ou utilisezusing namespace std;pour éviter les saisies répétéesstd::。Protection des fichiers d'en-têteLorsque vous écrivez vos propres fichiers d'en-tête, vous devez généralement utiliser des gardes d'en-tête pour éviter les inclusions multiples. Les fichiers d'en-tête de la bibliothèque standard incluent déjà ces mécanismes de protection, nous n'avons donc pas à nous soucier de l'inclusion multiple.
CompatibilitéLa bibliothèque standard C++ peut présenter certaines différences selon les compilateurs et les plateformes. Par conséquent, lors de l'écriture de code multiplateforme, vous devez faire attention à ces différences et vous assurer que le code fonctionne correctement dans différents environnements.