双重unordered_map查找
时间: 2023-10-12 19:07:51 浏览: 83
map-search
双重unordered_map查找可以通过嵌套使用两个unordered_map来实现。首先,我们需要定义两个unordered_map对象,分别表示外层和内层的映射关系。然后,我们可以使用这两个unordered_map来进行双重查找操作。
下面是一个示例代码,演示了如何使用双重unordered_map进行查找:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
// 定义外层和内层的unordered_map
std::unordered_map<int, std::unordered_map<int, std::string>> doubleMap;
// 向双重unordered_map中插入数据
doubleMap = "value_11";
doubleMap = "value_12";
doubleMap = "value_21";
doubleMap[2] = "value_22";
// 双重unordered_map的查找操作
int outerKey = 1;
int innerKey = 2;
if (doubleMap.count(outerKey) > 0 && doubleMap[outerKey].count(innerKey) > 0) {
std::cout << "Value found: " << doubleMap[outerKey][innerKey] << std::endl;
} else {
std::cout << "Value not found." << std::endl;
}
return 0;
}
```
在上面的示例中,我们首先定义了一个外层unordered_map,它的键是整数类型,值是一个内层unordered_map。内层unordered_map的键也是整数类型,值是一个字符串。然后,我们向双重unordered_map中插入了一些数据。
在查找操作中,我们可以使用count函数来判断外层和内层是否存在对应的键,然后通过双重索引访问到对应的值。
需要注意的是,双重unordered_map的查找操作的时间复杂度是O(1),因为unordered_map使用哈希表来实现,具有很快的查找速度。
阅读全文