为什么std ::由经验丰富的编码器使用而不是使用命名空间std;?

Fuz*_*Ski 10 c++ namespaces using-directives std

可能重复:
为什么'使用命名空间std;' 在C++中被认为是一种不好的做法?

有一天,当我问一个问题有人回答道说,如果有人问一个问题,告诉他们正确的方式做到这一点,而不是using namespace std;,我认为是有点怪,因为using namespace std;方式更容易,但我想我没有现在的我是一个'初学者'编码员,你们知道的更好.

所以我想我的问题是:为什么std::而不是using namespace std;

谢谢.

Lum*_*mpN 21

来自C++ FAQ:

我应该using namespace std在我的代码中使用吗?

可能不是.

人们不喜欢std::一遍又一遍地打字,他们发现 using namespace std让编译器看到任何std名字,即使是不合格的.美中不足的是它让编译器看到任何 std名称,甚至是你没有想过的名字.换句话说,它可以创建名称冲突和歧义.

https://isocpp.org/wiki/faq/coding-standards#using-namespace-std

  • 这一切都是在编译期间完成的,所得到的机器代码没有区别. (4认同)
  • @chustar:由于解决了歧义,它可能会使用`std :: foo`更快地编译.但我认为这不重要. (2认同)