C++中unordered_map 通过值找键
时间: 2023-10-21 11:26:13 浏览: 201
在C++中,unordered_map是一种关联容器,可以通过键值对的方式存储和访问数据。如果你想通过值来查找键,可以使用以下方法:
1. 遍历unordered_map的所有键值对,通过比较值找到对应的键。示例代码如下:
```cpp
std::unordered_map<KeyType, ValueType> myMap;
// 假设要查找的值为targetValue
ValueType targetValue;
for (const auto& pair : myMap) {
if (pair.second == targetValue) {
// pair.first 是找到的键
break;
}
}
```
2. 使用find函数结合lambda表达式来查找键。示例代码如下:
```cpp
std::unordered_map<KeyType, ValueType> myMap;
// 假设要查找的值为targetValue
ValueType targetValue;
auto it = std::find_if(myMap.begin(), myMap.end(),
[&](const auto& pair) { return pair.second == targetValue; });
if (it != myMap.end()) {
// it->first 是找到的键
}
```
这两种方法都可以根据值来查找对应的键。请注意,如果unordered_map中存在多个具有相同值的键值对,则这些方法只会返回其中的一个键。
阅读全文