using namespace std就是使用一个名字为std的namespace。这样命名空间std内定义的所有标识符都有效(曝光)。
看下面代码
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<n;
return 0;
}
该代码就是一个输入输出,若开头不写 using namespace std;代码,那么可以这样写:
#include<iostream>
int main()
{
int n;
std::cin>>n; // 或者写成 using std::cin>>n;这两者都行。下面的也可以using std::cout<<n
std::cout<<n; //若想在输出后面换行可将endl前加std:: 例如 std::cout<<n<<std::endl;
return 0;
}
下面解释一下std与using namespace std的关系
C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
早些的编码将标准库功能定义在全局空间里(所以并不需要注明使用什么命名空间,声明在带.h后缀的头文件里.C++标准为了和C区别开,也为了正确地使用命名空间,规定头文件不使用后缀.h。因此,当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现。当使用<iostream>时,该头文件没有定义全局命名空间必须使用namespace std,指明在哪里的命名空间,这样才能使用类似于cout这样的C++标识符。所以在写代码时开头直接声明using namespace std
比较省事。