#include
#include
#include
struct Element {
std::string name;
// 其他成员…
};
int main() {
std::vector elements = {
{“A”, /其他成员…/},
{“B”, /其他成员…/},
{“C”, /其他成员…/},
// 更多元素…
};
std::string targetName = "B";
// 使用 std::find_if 查找具有给定名称的元素
auto it = std::find_if(elements.begin(), elements.end(),
[&targetName](const Element& elem) {
return elem.name == targetName;
});
// 检查是否找到元素
if (it != elements.end()) {
std::cout << "找到元素:" << it->name << std::endl;
// 执行其他操作...
} else {
std::cout << "未找到元素:" << targetName << std::endl;
}
return 0;
}
在这个例子中,std::find_if 会遍历 std::vector 中的元素,通过 lambda 表达式检查元素的名称是否与目标名称相匹配。如果找到匹配的元素,std::find_if 返回指向该元素的迭代器;否则,它返回 std::vector 的末尾迭代器。