【发布时间】:2016-01-14 10:27:18
【问题描述】:
我想获得所有符合条件的项目。据我所知,我能做的是代码迭代器,但我不知道如何继续下去。这是我的代码:
map<string, Device*>::iterator it;
it = find_if(
devicesMap.begin(),
devicesMap.end(),
[](Device* item)->bool{return item->Name() == ""; });
此代码将获得第一项匹配条件,因为我在代码的另一部分中使用它,但如果有多个,我怎么能在不通过整个地图的情况下通过所有这些?
【问题讨论】:
-
在代码的另一部分我的意思是,我确实没有将
find_if与std::map一起使用,而是与std::list一起使用。回答您的问题,不,我可以创建对象的副本,因为我想修改它们。我想把所有没有名字的人都写下来。 -
你可以把它们(使用
copy_if)放在一个指针指向实际对象的容器中。
标签: c++ dictionary lambda iterator