我想获得符合条件的所有物品。到目前为止,我能够做的是代码解析器,但我不知道如何继续前进。这是我的代码:
map<string, Device*>::iterator it;
it = find_if(
devicesMap.begin(),
devicesMap.end(),
[](Device* item)->bool{return item->Name() == ""; });
这段代码会让第一个项目符合条件,因为我在代码的另一部分使用它,但是如果有多个,我怎么能在不通过整个地图的情况下浏览所有这些?
答案 0 :(得分:0)
最后,我以这种方式感谢@Joachim解决了这个问题:
copy_if(originalMap->begin(),
originalMap->end(),
inserter(auxMap, auxMap.end()),
[auxTimevar](std::pair<string, SnmpHwObject*> n)->bool
{
seconds sec = chrono::duration_cast<seconds>(n.second->TimeStamp());
return (rightNow - sec.count() >= TEN_SECONDS);
});
我发布它,如果有人对它感兴趣的话。
我已经使用一个简单的for
检查了算法,其if
条件是有效的。