我了解到,打字
using namespace std;
在程序开头使用"import *"是一种不好的习惯,因为它会将命名空间中的所有函数都导入进来。这可能会导致名称冲突而引发错误。
我的问题是,是否存在一种方法可以指定你不想使用哪些命名空间中的函数呢?是否有某种语句,比如说:
not_using std::cin;
可以完成这个任务的吗?
我了解到,打字
using namespace std;
not_using std::cin;
你不能这样做(将所有内容包含,然后有选择地排除某些内容)。
你的选择是:
1)始终显式限定名称。例如:std::vector<int> v;
2)使用using namespace std;
引入所有名称。
3)仅使用using std::vector;
引入所需名称,然后执行vector<int> v;
- 其他名称不会被引入。
注意: using namespace std;
不必放在全局范围内并污染整个文件。如果你想的话,可以在函数内部进行操作:
void f() {
using namespace std;
// More code
}
这样,只有 f()
将其本地作用域中的所有名称都引入。对于 using std::vector;
等也是如此。
using ns_name::name;
来仅访问您想要的名称,而不进行限定性访问。
https://en.cppreference.com/w/cpp/language/namespace
使用以下语法而不是全局命名空间范围: 例如: std::cout :