【发布时间】:2019-08-10 02:45:15
【问题描述】:
我有一个函数可以搜索迭代器向量,如果它的名称与作为参数传递的字符串匹配,则返回迭代器。
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 主体中引用封闭函数局部变量,除非它在捕获列表中。
【问题讨论】:
-
No
return如果没有找到?