map中通过值获取键集合
时间: 2023-08-11 09:07:51 浏览: 96
在C++中,map中通过值获取键集合可以通过以下步骤实现:
1. 遍历整个map,将所有值与目标值进行比较。
2. 如果值相等,则将对应的键存储到一个集合中。
3. 最后返回存储键的集合。
下面是一个示例代码:
```c++
#include <iostream>
#include <map>
#include <vector>
using namespace std;
template<typename K, typename V>
vector<K> get_keys_by_value(const map<K, V>& dict, const V& value)
{
vector<K> keys;
for (auto const& pair : dict) {
if (pair.second == value) {
keys.push_back(pair.first);
}
}
return keys;
}
int main()
{
map<int, string> dict = {{1, "apple"}, {2, "banana"}, {3, "orange"}, {4, "apple"}};
vector<int> keys = get_keys_by_value(dict, "apple");
for (auto key : keys) {
cout << key << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 4
```
说明键值为"apple"的键是1和4。
阅读全文