关于c ++:“using namespace std”有什么用?

What is the use of “using namespace std”?

本问题已经有最佳答案,请猛点这里访问。

using namespace std的用途是什么?

我想看看外行的解释。


  • 使用:你将要使用它。
  • 名称空间:要使用什么?命名空间。
  • STD:EDCOX1×5的命名空间(声明C++标准库的特性,如EDCOX1×8)或EDCOX1×9)。

编写此指令后,如果编译器看到string,它将知道您可能指的是std::string,如果它看到vector,它将知道您可能指的是std::vector。(当然,前提是在编译单元中包含了定义它们的头文件。)

如果你不写,当编译器看到stringvector时,它将不知道你指的是什么。您需要明确地告诉它std::stringstd::vector,如果不这样做,您将得到一个编译错误。


当您调用using namespace ;时,该名称空间中的所有符号将变为可见,而不添加名称空间前缀。符号可以是函数、类或变量。

例如,如果添加using namespace std;,在调用命名空间std中定义的操作符cout时,可以只写cout,而不写std::cout

这有点危险,因为名称空间是用来避免名称冲突的,通过编写using namespace,您可以节省一些代码,但会失去这一优势。更好的选择是使用特定的符号,从而使它们在没有命名空间前缀的情况下可见。如:

1
2
3
4
5
6
7
#include <iostream>
using std::cout;

int main() {
  cout <<"Hello world!";
  return 0;
}