本文主要介绍 C++ 编程语言的 STL(Standard Template Library) 中 unordered_map 的相关知识,同时通过示例代码介绍 unordered_map 的常见用法。
C++标准库提供了四个无序关联容器(unordered associated container),这些容器不是使用比较运算符、而是使用一个哈希函数(hash function)和关键字类型的==运算符来组织元素。
在关键字类型的元素没有明显的“序关系”的情况下,无序容器是非常有用的。在某些应用中,维护元素的序的代价非常高昂,此时无序容器也很有用。
unordered_map 就是 C++标准库提供的四个无序关联容器之一。
通常可以采用下面的方式构造 unordered_map(以 key 和 value 均为 char 类型为例):
unordered_map unoMap;
可以通过 [] 运算符来执行添加/更新元素操作,示例代码如下:
unoMap['a'] = 'b';
说明:如果 key 对应的 value 存在,则执行更新元素操作,否则执行添加元素操作。
可以通过 [] 运算符来执行查询元素操作,示例代码如下:
char chValue = unoMap['a'];