【发布时间】:2012-10-16 17:24:11
【问题描述】:
是否可以仅使用“foreach”来迭代 std::map 中的所有值?
这是我当前的代码:
std::map<float, MyClass*> foo ;
for (map<float, MyClass*>::iterator i = foo.begin() ; i != foo.end() ; i ++ ) {
MyClass *j = i->second ;
j->bar() ;
}
有没有办法可以做到以下几点?
for (MyClass* i : /*magic here?*/) {
i->bar() ;
}
【问题讨论】:
-
为什么你不喜欢 i->second->bar() ?
-
看看[这个问题的答案][1]。我认为这正是你所需要的。 [1]:stackoverflow.com/questions/6963894/…
-
@LyubomirVasilev:不,那只是询问如何在一般地图上迭代范围。这个问题询问如何仅对值进行专门迭代。
-
@Xeo 啊,我明白了。我忽略了这一点。
标签: c++ dictionary for-loop c++11 key-value