c++ map找到value对应的key
时间: 2023-05-02 13:06:29 浏览: 408
在C++中,map是一个关联容器,它将键值(key)和值(value)成对存储。在使用map时,有时候我们需要根据已知的value值来查找对应的key值。此时我们可以使用迭代器来实现。具体方法如下:
首先,在使用map时要确定value的类型。假设我们的map定义如下:
```c++
map<string, int> myMap;
```
那么,我们可以根据value的类型来定义一个迭代器:
```c++
map<string, int>::iterator it;
```
接下来,我们可以使用循环来遍历map,使用if语句来寻找对应的value值:
```c++
for (it = myMap.begin(); it != myMap.end(); ++it) {
if (it->second == value) {
cout << "The key for the value " << value << " is: " << it->first << endl;
break;
}
}
```
在以上代码中,it代表当前迭代器指向的键值对,it->first表示当前键,it->second表示当前值。当找到对应的value值时,输出对应的key值并退出循环。
需要注意的是,如果map中有多个对应的value值,上述代码只会输出第一个对应的key值。如果要输出全部对应的key值,则需要将if语句改为:
```c++
if (it->second == value) {
cout << "The key for the value " << value << " is: " << it->first << endl;
}
```
这样可以在遍历完整个map后,输出所有对应的key值。