“使用名称空间标准”有什么好的选择?
这个问题在这里已经有了答案:
using namespace std;
引入std
命名空间到全局命令空间的所有主要选择using namespace std;
在全球范围内是:
只需带上您需要的实际名称。 例如刚刚引进vector
与using std::vector;
在使用名称时始终使用显式名称空间限定。 例如std::vector<int> v;
(在标题中,这几乎总是你做的唯一事情)
引入所有名称,但缩小范围(如只在函数内部)。 例如void f() { using namespace std; vector<int> v; }
void f() { using namespace std; vector<int> v; }
void f() { using namespace std; vector<int> v; }
- 这不会污染全局名称空间。
另一种方法是在任何地方编写std::
。 由于名称冲突以及因为目前尚不清楚而令人不悦。 如果你只是写vector
我不会立即知道你是否使用了一些数学3d矢量或标准库矢量或其他东西。 如果你写std::vector
就很清楚。 如果你using namespace std
, vector
可能会与我自己的3D数学类相撞,称为vector
。