
std::map用法
发布日期:2021-05-19 20:28:51
浏览次数:19
分类:精选文章
本文共 1356 字,大约阅读时间需要 4 分钟。
STL的map类是C++标准库中用于存储键值对的一组模板类,广泛应用于需求对键值进行快速查找和管理的场景。在使用STL的map类之前,我们需要了解它的基本概念和使用方法。
包含文件
在使用map类之前,必须包含相应的头文件:
#include
定义map对象
map类是模板类,需要指定两个模板参数:键(key)的类型和值(value)的类型。例如:
std::mapmyMap;
这里,std::map<int, std::string>
表示使用整数作为键,字符串作为对应的值。
添加条目
通过直接访问或调用插入方法可以添加条目。使用 []
运算符可以直接赋值:
myMap[1] = "One";
或者调用 insert
方法:
myMap.insert(std::make_pair(1, "One"));
查找条目
使用 find
方法查找特定键:
std::map::iterator it = myMap.find(1);
若找到的结果为空,表示不存在该键:
if (it == myMap.end()) { // 未找到条目} else { // 找到条目}
删除条目
使用 erase
方法删除条目,支持多种调用方式:
- 删除单个条目:
myMap.erase(1);
- 删除多个条目:
myMap.erase(myMap.begin(), myMap.begin() + 2);
- 或者使用空式 iterators:
auto it = myMap.erase(myMap.begin());
获取条目总数
使用 size()
方法获取当前条目总数:
int size = myMap.size();
清空映射
使用 clear()
方法清空整个映射:
myMap.clear();
输出示例
编写一个简单的输出示例:
#include#include
注意事项
- 类型匹配:确保键和值的类型与模板参数一致。在查找时,若键的类型不匹配,可能会导致编译错误。
- 迭代器使用:
begin()
和end()
返回的是std::pair
对象的一种特殊化迭代器 (iterator
),包含两个成员first
和second
。 - 资源管理:在使用
map
对象时,注意在类的析构函数中调用clear()
方法,以释放内存。
通过以上方法,STL的 map
类可以简化键值对的存储和管理过程。在实际应用中,可以根据需求选择合适的插入、查找和删除方法,确保程序的可靠性和效率。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月10日 08时06分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Powershell中禁止执行脚本解决办法
2019-03-06
OO_Unit2 多线程电梯总结
2019-03-06
04_Mysql配置文件(重要参数)
2019-03-06
JavaSE总结
2019-03-06
Python IO编程
2019-03-06
使用 TortoiseGit 时,报 Access denied 错误
2019-03-06
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2019-03-06
c++之程序流程控制
2019-03-06
李笑来必读书籍整理
2019-03-06
Hadoop(十六)之使用Combiner优化MapReduce
2019-03-06
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2019-03-06
C语言编译错误列表
2019-03-07
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
Android DEX加固方案与原理
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Java多线程
2019-03-07