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 <iostream> // importer la bibliothèque de flux d'entrée/sortie
#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

import std;// importer toute la bibliothèque standard (C++23fonctionnalités)

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.core;// importer la bibliothèque core
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

#include <iostream>

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

#include <vector>

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 <cmath>
#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 <string>
#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 <algorithm>
#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 dansstdl'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.

autres extensions