我有一个函数,它搜索迭代器的向量,并在其名称与传递的字符串参数匹配时返回该迭代器。
koalaGraph::PVertex lookUpByName(std::string Name, std::vector<koalaGraph::PVertex>& Vertices) {
for (size_t i = 0; i < Vertices.size(); i++) {
if(Vertices[i]->info.name == Name)
return Vertices[i];
}
}
我的问题是如何将它实现为lambda表达式,以便与std::find_if
一起使用?我正在尝试这样做:
std::vector<koalaGraph::PVertex> V;
std::string Name;
std::find_if(V.begin(), V.end(), [&Name]() {return Name == V->info.name;})
但它说 V
如果不在捕获列表中,Lambda 表达式中的封闭函数局部变量将无法被引用。