【发布时间】:2017-11-16 21:00:10
【问题描述】:
我有一个字符串和一个 (string, Object) 的 unordered_map。我已经有一些代码在其中迭代地图:
for(auto& item : map) {
do_something;
}
我想修改它以在字符串非空并且在地图中找到时在 for 循环中执行部分,否则如果字符串为空,则对地图中的所有项目执行此操作。
if(!string.empty()){
item = map.find(string);
do_something;
}
else {
for(auto& item : map) {
do_something;
}
}
我可以在不重写 do_something 或创建单独的函数的情况下执行此操作吗?
【问题讨论】:
-
将
do_something放入函数本地 lambda 中? -
我可以从 map.find() 的对中创建某种迭代器,以便 for 循环保持原样吗?
-
不确定我是否遵循你的思路
-
类似 temp = map 或 map.find();对于(项目:临时){}
-
其实可以的。给我一点时间。
标签: c++ iterator unordered-map