¿Cuál es la diferencia entre ‘#include’ y ‘using namespace std’ en C++?

  • Directiva #include

La directiva #include le dice al preprocesador que inserte el contenido de otro archivo en el código fuente en el punto en el que se encuentra la directiva #include.

Las directivas #include se utilizan normalmente para incluir los archivos de cabecera de C++ / C para las funciones que se mantienen fuera del archivo fuente actual.

  • iostream

Una cabecera que define los objetos de flujo de entrada/salida estándar. Principalmente se utiliza para cin y cout.

  • namespace

Suponga que tiene una función llamada max() y hay otra biblioteca disponible que también tiene alguna función max(). Ahora el compilador no tiene forma de saber a qué función max() se refiere dentro de su código.

Un espacio de nombres se define para superar esta dificultad y se utiliza como información adicional para diferenciar funciones, clases, variables similares, etc. En esencia, un espacio de nombres define un ámbito.

  • std

En el espacio de nombres std se declaran funciones de la biblioteca estándar de C++, como string o vector.

Si no' escribes utilizando el espacio de nombres std; y el compilador ve la cadena o el vector no sabrá a qué te estás refiriendo. Tendrá que decirle explícitamente std::string o std::vector, y si no lo hace, obtendrá un error de compilación.