【发布时间】:2017-11-08 10:22:03
【问题描述】:
我正在尝试遍历对象向量,然后选择一个匹配的特定 ID。下面的示例将打印与 ID 匹配的第一个对象,但如何打印或选择少数匹配相同 ID 的对象?我尝试使用 while 循环,但它会起作用,因为我每次都必须增加迭代器,我总是会得到“分段错误”。
it = find_if(database.begin(), database.end(), [&id](cd &c) {
return c.getId() == id;
});
int index = std::distance(database.begin(), it); //finding index of the object
database[index].print(); //prints everything from the object
【问题讨论】:
-
使用
for循环。 -
@Ron 我试过但是内联函数在 for 循环中不起作用
-
请显示不起作用的代码。 Afaik 没有算法可以完全满足您的需求。你可以使用
for_each,但这也只是一个变相的for循环 -
@Ron 你回答了我的问题,非常感谢。
标签: c++ object vector lambda iterator