有没有办法不使用名称空间中的项目?

Is there a way to not use an item from a namespace?

我学会了打字

using namespace std;

放在程序开头是个坏习惯,因为它包含了命名空间中的每个函数。如果存在名称冲突,这可能会导致错误。

我的问题是,是否有一种方法可以指定您不想使用哪些命名空间函数?有没有什么语句,比如

not_using std::cin;

那可以做到这一点?

您可以using ns_name::name;只是您想要无限制访问的名称。

https://en.cppreference.com/w/cpp/language/namespace

你不能那样做(包含所有内容然后有选择地排除某些内容)。

您的选择是:

1) 始终明确限定名称。喜欢std::vector<int> v;

2) 拉入所有名称 using namespace std;

3) 仅引入您需要的名称,例如 using std::vector; 然后执行 vector<int> v; - "vector" 以外的名称不会被引入。

注意:using namespace std; 不必进入全局范围并污染整个文件。如果你愿意,你可以在一个函数中完成它:

void f() {
    using namespace std;
    // More code
}

这样,只有 f() 会在其本地范围内提取所有名称。 using std::vector;

也是如此

不使用全局命名空间范围,而是使用以下语法: 例如 : std::cout :

有关更多示例,请阅读: http://www.cplusplus.com/doc/tutorial/namespaces/