c++ - “使用命名空间:std;”的功能是什么 在 C++ 中?
问题描述
using namespace std;
这个语句的作用是什么?
这是否与“包含”具有相同的功能?
解决方案
其中一个概念c++
是名称空间。这以某种方式组织您的代码。
现在using namespace std;
做什么?让我们通过例子来探索这一点。
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl; // important line
return 0;
}
您会std
在注释所在的行中看到关键字。这称为命名空间。所以你告诉编译器,你想使用cout
命名空间std
。
和using namespace std;
#include <iostream>
using namespace std;
int main() {
cout << "Hello World" << endl; // important line
return 0;
}
在那里你告诉编译器,在这个范围内打开std
命名空间四个你。所以你可以cout
不用std::
. 这可能被误认为对编码更有效。但是你会在某一时刻遇到问题。
在命名空间std
中定义了数百个或数千个函数或常量等。大多数时候你不会为此烦恼。但是如果你在某一时刻定义了一个具有相同名称和参数的函数,你将很难发现错误。例如有std::find
. 您可能有机会定义相同的函数。在这种情况下,编译器错误很痛苦。所以我强烈反对你使用using namespace std;
.
推荐阅读
- python - 在一维序列的大列表上的 Scipy 二次一维插值非常慢
- python - 如何使用 python-pptx 包自动从 Microsoft Forms 中提取信息?
- r - 在 r 中使用 left_join() 函数后值变为 NA
- fortran - 如何使用两组循环在 Fortran 中打开、读取和写入多个文件?
- javascript - 无法为范围注册 ServiceWorker ('https://.xxx.net/firebase-cloud-messaging-push-scope')
- sql-server - SQL Server - 如何在可能会回滚的运行过程中创建/提交日志记录
- python - 使用从 RoR 到 Flask 的 jwt 时出现错误“无效的加密填充”
- sql - SQL Server - 分组和求和但忽略空值或空值
- for-loop - 带有 json 子列表的 Flutter for 循环
- python - 为什么 cuDNN 不加载(GPU)?