STL unordered_map获取元素

STL unordered_map获取元素教程

我们要在 STL 中的 unordered_map 容器中获取某个键对应的值,可以使用下标的方式和使用 at 的方式。

STL unordered_map获取元素详解

语法

unordered_map[key]

参数

参数 描述
key 需要查找的键。

说明

借助重载的 [ ] 运算符,就可以在 unordered_map 容器中直接找到该键对应的值。

技术细节

该模板类中重载了 [] 运算符,其功能是可以向访问数组中元素那样,只要给定某个键值对的键 key,就可以获取该键对应的值。注意,如果当前容器中没有以 key 为键的键值对,则其会使用该键向当前容器中插入一个新键值对。

STL unordered_map at详解

语法

unordered_map.at(key)

参数

参数 描述
key 需要查找的键。

说明

返回容器中存储的键 key 对应的值,如果 key 不存在,则会抛出 out_of_range 异常。

案例

使用索引获取unordered_map元素

使用下标索引的形式,获取 unordered_map 中的元素

#include <iostream> #include <unordered_map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; unordered_map<int, string> unordered_map1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}}; auto item = unordered_map1[2]; cout << "Item = " << item << endl; item = unordered_map1[4]; cout << "Item = " << item << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

08_unordered_map获取元素.png

我们首先使用了 unordered_map 下标索引的方式,查找了键为 2 的值,因为键存在,因此,获取了正确的值,最后,我们再次获取了不存在的键,此时返回了对应的空值。

使用at获取unordered_map元素

使用 at 的形式,获取 unordered_map 中的元素

#include <iostream> #include <unordered_map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; unordered_map<int, string> unordered_map1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}}; auto item = unordered_map1.at(2); cout << "Item = " << item << endl; item = unordered_map1.at(4); cout << "Item = " << item << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

09_unordered_map获取元素.png

我们首先使用了 at 的方式,查找了键为 2 的值,因为键存在,因此,获取了正确的值,最后,我们再次获取了不存在的键,此时返回了异常。

STL unordered_map获取元素教程总结

我们要在 STL 中的 unordered_map 容器中获取某个键对应的值,可以使用下标的方式和使用 at 的方式。