"使用命名空间std"有什么用?

Jar*_*vis 59 c++ namespaces using std

有什么用using namespace std

我想看看Layman的解释.

Dan*_*nas 84

  • 使用:你将使用它.
  • 命名空间:要用什么?命名空间.
  • std:std名称空间(声明C++标准库的功能,例如stringvector).

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

如果你写它,当编译器看到string或者vector它不知道你所指的是什么.你需要明确地告诉它std::string或者std::vector,如果你不这样做,你会得到一个编译错误.

  • 刚刚好... (3认同)

izo*_*ica 28

当您调用using namespace <some_namespace>;该命名空间中的所有符号时,将在不添加命名空间前缀的情况下显示.符号可以是例如函数,类或变量.

例如,如果添加,using namespace std;您可以只调用cout而不是std::cout在调用cout命名空间中定义的运算符时编写std.

这有点危险,因为名称空间旨在用于避免名称冲突,并通过编写using namespace备用一些代码,但放弃了这一优势.更好的选择是仅使用特定符号,从而使它们在没有名称空间前缀的情况下可见.例如:

#include <iostream>
using std::cout;

int main() {
  cout << "Hello world!";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)