c++ std vector 怎么查找结构体元素
时间: 2023-08-15 13:25:37 浏览: 150
如果你想在一个存储结构体的 vector 中查找某个元素,可以使用 std::find_if 函数结合 lambda 表达式来实现。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
struct Person {
std::string name;
int age;
};
int main() {
std::vector<Person> people = {{"Alice", 20}, {"Bob", 30}, {"Charlie", 40}};
// 查找年龄为 30 的人
auto it = std::find_if(people.begin(), people.end(), [](const Person& p) {
return p.age == 30;
});
// 如果找到了,输出这个人的姓名
if (it != people.end()) {
std::cout << it->name << std::endl;
}
else {
std::cout << "Not found" << std::endl;
}
return 0;
}
```
注意,这里 lambda 表达式的作用是告诉 std::find_if 函数如何比较元素。在这个示例中,lambda 表达式返回 true 表示这个元素的 age 字段等于 30,这样 std::find_if 函数才会认为这个元素是我们要找的。