“使用命名空间 std;”有哪些好的替代方案?

Ric*_*yer 3 c++ namespaces std

我知道这是有问题的(例如,从阅读“为什么被认为是不好的做法?”using namespace std;的答案)。using namespace std

导入这样的标准命名空间有什么好的替代方法?

我想知道我可以做些什么来改进我的代码。

Jes*_*uhl 6

在全局范围内将命名空间中的所有内容引入全局命名空间的主要替代方案是:stdusing namespace std;

  1. 仅输入您需要的实际名称。例如,只需vector引入using std::vector;

  2. 使用名称时始终使用显式名称空间限定。例如std::vector<int> v;(在headers中,这几乎总是您唯一要做的事情)

  3. 引入所有名称,但范围缩小(例如仅在函数内部)。例如void f() { using namespace std; vector<int> v; }- 这不会污染全局名称空间。