unordered_map是基于哈希表的C++关联容器,提供O(1)平均时间复杂度的查找、插入和删除操作,不保证元素有序;需包含头文件并使用std命名空间;声明方式为unordered_map name,可直接初始化键值对;插入可用insert、下标或emplace,推荐emplace更高效;查找推荐使用find配合迭代器判断是否存在,或count返回0/1;访问值时下标操作符会隐式插入默认值,建议先检查存在性或用at()避免错误;删除用erase传键或迭代器;遍历支持范围for循环或迭代器;自定义类型作键时需提供哈希函数;注意避免下标误插、频繁重哈希,可通过reserve预分配空间提升性能。

unordered_map 是 C++ 标准库中提供的关联式容器,基于哈希表实现,用于存储键值对(key-value pairs),能够以接近常数时间复杂度 O(1) 完成查找、插入和删除操作。相比 map(基于红黑树),unordered_map 查询更快,但不保证元素有序。
包含头文件与命名空间
使用 unordered_map 需要包含对应的头文件,并引入 std 命名空间:
#include#include iostream>
using namespace std;
声明与初始化
基本语法如下:
unordered_map例如:
立即学习“C++免费学习笔记(深入)”;
unordered_mapunordered_map
也可以在定义时初始化:
unordered_map&{"Alice", 95},
&{"Bob", 87},
&{"Charlie", 90}
};
常用操作方法
1. 插入元素
- 使用 insert() 方法: student_scores.insert({"David", 88});
- 使用下标操作符 [] 或 emplace(): student_scores["Eve"] = 92; // 若键不存在则创建,存在则覆盖
student_scores.emplace("Frank", 76); // 更高效,原地构造
2. 查找元素
标签: ai c++ ios stream 键值对 标准库 red
还木有评论哦,快来抢沙发吧~