首页 > 后端开发 > C++ > 正文

C++ set和map有什么区别_C++ STL中关联容器set与map的使用场景

裘德小鎮的故事
发布: 2025-11-21 18:23:02
原创
744人浏览过
set存储唯一键,用于去重和存在性判断;2. map存储键值对,用于映射关系如统计频次;3. set适合有序集合操作,map适合关联数据查找;4. 根据是否需要值选择容器,避免内存浪费。

c++ set和map有什么区别_c++ stl中关联容器set与map的使用场景

在C++ STL中,setmap都属于关联容器,底层通常由红黑树实现,支持有序存储和快速查找。它们的核心区别在于存储的数据类型和使用目的。

存储内容不同

set用于存储唯一的键(key),不包含值。每个元素本身就是键,且自动去重、自动排序。

map存储的是键值对(key-value pair),通过唯一的键来映射对应的值。同样保证键的唯一性和有序性。

- set: 只关心“有哪些元素”,例如记录已访问的ID。 - map: 关心“某个键对应什么值”,例如统计单词出现次数。

插入方式与数据结构

set 插入的是单个值:

立即学习C++免费学习笔记(深入)”;

set<int> nums;
nums.insert(10);

map 插入的是键值对:

析稿Ai写作
析稿Ai写作

科研人的高效工具:AI论文自动生成,十分钟万字,无限大纲规划写作思路。

析稿Ai写作 142
查看详情 析稿Ai写作
map<string, int> wordCount;
wordCount["hello"] = 1;

map 的每个元素是 pair 类型,可以通过 first 访问键,second 访问值。

典型使用场景对比

当你只需要维护一个不重复、有序的元素集合时,用 set 更合适:

- 去重:如读取一组数字并输出唯一值。 - 查找存在性:判断某个用户ID是否已注册。 - 遍历时希望按顺序访问元素。

当你需要将一个键与另一个数据关联起来时,选择 map

- 统计频次:词频统计、字符出现次数。 - 缓存映射:用户名到用户信息的查找。 - 配置管理:配置项名称到设置值的映射。

基本上就这些。set 是“键即数据”的容器,map 是“键映射值”的工具。根据你要解决的问题选择即可。不复杂但容易忽略的是:如果只是判断存在性,别滥用 map 浪费内存。反之,需要附加信息时,set 就不够用了。

以上就是C++ set和map有什么区别_C++ STL中关联容器set与map的使用场景的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号