Quelle est la différence entre ‘#include’ et ‘using namespace std’ en C++ ?

  • #include Directive

La directive #include indique au préprocesseur d'insérer le contenu d'un autre fichier dans le code source au point où se trouve la directive #include.

Les directives #include sont généralement utilisées pour inclure les fichiers d'en-tête C++ / C pour les fonctions qui se tiennent en dehors du fichier source actuel.

  • iostream

En-tête qui définit les objets de flux d'entrée/sortie standard. Principalement utilisé pour cin et cout.

  • namespace

Supposons que si vous avez une fonction appelée max() et il y a une autre bibliothèque disponible qui a également une certaine fonction max(). Maintenant, le compilateur n'a aucun moyen de savoir à quelle fonction max() vous faites référence au sein de votre code.

Un espace de noms est défini pour surmonter cette difficulté et est utilisé comme une information supplémentaire pour différencier des fonctions, des classes, des variables similaires, etc. Par essence, un espace de noms définit une portée.

  • std

Dans l'espace de noms std sont déclarées des fonctionnalités de la bibliothèque standard C++, comme la chaîne de caractères ou le vecteur.

Si vous n'écrivez pas en utilisant l'espace de noms std ; et que le compilateur voit la chaîne de caractères ou le vecteur, il ne saura pas à quoi vous faites référence. Vous devrez lui dire explicitement std::string ou std::vector, et si vous ne le faites pas't, vous obtiendrez une erreur de compilation.

.