我知道using namespace std;
存在问题(例如从阅读“为什么认为using namespace std
是一种不好的实践方式?”的答案中可以了解到)。
有哪些很好的替代方法可以导入标准命名空间呢?
我想知道如何改进我的代码。
我知道using namespace std;
存在问题(例如从阅读“为什么认为using namespace std
是一种不好的实践方式?”的答案中可以了解到)。
有哪些很好的替代方法可以导入标准命名空间呢?
我想知道如何改进我的代码。
using namespace std;
将所有内容从std
命名空间引入到全局命名空间中,其它替代方案如下:
只引入需要的名称,例如只使用using std::vector;
引入vector
。
在使用名称时始终使用显式的命名空间限定符,例如std::vector<int> v;
(在头文件中,这几乎总是唯一需要做的事情)。
将所有名称引入,但在缩小的范围内引入(例如仅在函数内部)。例如void f() { using namespace std; vector<int> v; }
- 这不会污染全局命名空间。
std::
。这样做不被推荐,因为名称冲突并且不清晰。 如果您只写vector
,我不会立即知道您是否正在使用某个数学三维向量还是标准库向量或其他内容。如果您写std::vector
,就很清楚了。如果您使用using namespace std
,vector
可能会与我的3D数学类冲突,该类名为vector
。