unordered_map访问key和value
时间: 2023-08-23 20:16:53 浏览: 100
unordered_map是一个将key和value关联起来的容器,可以使用可以通过hash函数得到key对应的hash值,然后根据hash值找到对应的bucket索引号,再比较bucket内元素的key值是否与要查找的key值相等,若相等则取出对应的value值。在使用unordered_map时,可以使用emplace函数来插入一个元素,也可以直接写上key和value的值插入元素。通过使用
相关问题
这个unordered_map为什么可以有这么多value值呢std::unordered_map<Key, Value, Hash, KeyEqual>
`std::unordered_map` 是 C++ 标准库中的一个容器,它实现了哈希表的数据结构。哈希表是一种高效的数据结构,它允许我们存储和访问键值对。在 `std::unordered_map` 中,键是唯一的,并且通过哈希函数将键映射到一个位置来存储值。
`std::unordered_map` 模板接受四个参数:`Key` 是键的类型,`Value` 是值的类型,`Hash` 是用于计算键的哈希值的哈希函数对象,`KeyEqual` 是用于比较键的相等性的函数对象。
因为哈希表的设计,它可以存储大量的键值对,而且在插入、查找和删除操作时具有快速的性能。所以在 `std::unordered_map` 中可以有很多个值,只要键是唯一的,每个键对应一个值。
unordered_map查找key对应的value
unordered_map是C++ STL中的一个关联容器,它提供了一种通过键值快速查找值的方法。在unordered_map中,每个元素都是一个键值对,其中键是唯一的,而值可以重复。要查找key对应的value,可以使用unordered_map的find()函数,该函数返回一个指向key对应的value的迭代器,如果key不存在,则返回unordered_map的end()迭代器。下面是一个示例代码:
```
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> myMap = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
string key = "banana";
auto it = myMap.find(key);
if (it != myMap.end()) {
cout << "The value of " << key << " is " << it->second << endl;
} else {
cout << "Key not found" << endl;
}
return 0;
}
```
输出结果为:
```
The value of banana is 2
```
阅读全文