map容器如何find value
时间: 2024-05-01 11:23:53 浏览: 17
在 C++ 中,可以使用 `map` 容器的 `find()` 成员函数来查找指定的键,如果找到了该键,则返回一个指向该键值对的迭代器,否则返回一个指向 `map` 最后一个元素的迭代器。
如果你想要查找某个特定的值,可以使用 `std::find_if()` 函数和一个 lambda 表达式来实现。具体的代码如下所示:
```c++
#include <iostream>
#include <algorithm>
#include <map>
int main() {
std::map<std::string, int> m{{"apple", 3}, {"banana", 2}, {"orange", 4}};
// 使用 find() 函数查找键
auto it = m.find("banana");
if (it != m.end()) {
std::cout << "Found " << it->first << " with value " << it->second << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
// 使用 find_if() 函数查找值
auto result = std::find_if(m.begin(), m.end(), [](const auto& p) { return p.second == 4; });
if (result != m.end()) {
std::cout << "Found " << result->first << " with value " << result->second << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
```
上述代码中,我们首先使用 `map` 容器的 `find()` 函数查找键为 `"banana"` 的键值对,如果找到了,则输出该键值对的键和值;否则输出 `"Not found"`。
接着,我们使用 `std::find_if()` 函数和一个 lambda 表达式查找值为 `4` 的键值对。如果找到了,则输出该键值对的键和值;否则输出 `"Not found"`。