首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >17.2 C++标准命名空间

17.2 C++标准命名空间

作者头像
小林C语言
发布2023-09-14 17:46:50
发布2023-09-14 17:46:50
3570
举报

作者

闫小林

白天搬砖,晚上做梦。我有故事,你有酒么?

C++标准命名空间

C++ 标准库中定义了一个名为 std 的命名空间,其中包含了很多有用的函数、类、对象和类型定义,比如容器、迭代器。

为方便读者理解,小林写个具体的 demo:

代码语言:javascript
复制
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5}; // 定义一个整型向量
    std::vector<int>::iterator it; // 定义一个迭代器
    for (it = vec.begin(); it != vec.end(); it++) { // 输出向量中的所有元素
        std::cout << *it << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述小林写的 demo 中,我用 vector 容器存储了一组整数,并使用 iterator 迭代器遍历了容器的所有元素,最后输出。

在整个代码中,我用了 std 命名空间中的 vector 类和 iterator 类。

上述 demo 编译运行结果:

代码语言:javascript
复制
1 2 3 4 5

C++标准命名空间注意事项

读者在使用标准命名空间需要注意以下几点:

1、在使用 std 命名空间中的内容之前,一定要在程序中包含相关头文件,否则编译器将无法识别所使用的对象、类型定义等。

2、C++ 标准库中的某些函数或类型与其他库或自定义代码中的名称相同,容易发生命名冲突。

因此,在引入 C++ 标准库时,要特别注意不要与已有名称冲突。

3、在不同的编译单元中,在相应的源文件中包含相应的头文件,并使用 std:: 前缀以避免命名空间重复。

4、不要在使用 using namespace std; 或者 using std::xxx; 等命名空间的方式,会引入与项目自定义变量、函数冲突的情况。

5、不要使用std对象/类型名称的当中的下划线后缀,因为这是已经被保留的,很可能会导致未定义行为。

6、避免在头文件内使用std:: 框架内的名称,如不可避免,尽可能使用作用域限制符,避免污染其他文件的命名空间。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档