std::vector<std::pair<std::string, int>> myVec;怎么使用find函数
时间: 2023-07-02 09:20:21 浏览: 144
std::vector<std::pair<std::string, int>>是存储了std::string和int类型的pair的vector。对于这种情况,我们可以使用std::find_if函数和lambda表达式来查找满足条件的元素。lambda表达式可以让我们自定义查找条件。以下是一个示例:
```c++
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
int main() {
std::vector<std::pair<std::string, int>> myVec = {{"apple", 3}, {"banana", 2}, {"cherry", 5}};
auto it = std::find_if(myVec.begin(), myVec.end(), [](const std::pair<std::string, int>& p) {
return p.first == "banana";
});
if (it != myVec.end()) {
std::cout << "Found! The value of " << it->first << " is " << it->second << "." << std::endl;
} else {
std::cout << "Not found." << std::endl;
}
return 0;
}
```
在上面的代码中,我们使用了std::find_if函数和lambda表达式来查找键为"banana"的元素。lambda表达式接受一个std::pair<std::string, int>类型的参数p,并返回一个bool类型的值。如果p的第一个元素等于"banana",则返回true,否则返回false。使用std::find_if函数可以找到第一个满足条件的元素,如果找到了,就输出这个元素的值,否则输出"Not found"。
阅读全文