【发布时间】:2014-05-30 01:11:50
【问题描述】:
我更愿意以与 answer 相同的方式循环 c++ map:
for (auto& kv : myMap) {
std::cout << kv.first << " has value " << kv.second << std::endl;
}
使用基于范围的方法,是否可以确定kv 是范围中的最后一个元素?如果有,怎么做?
【问题讨论】:
-
如果您不修改该值。最好使用
auto const&。 -
你能测试它是否等于 myMap.end() - 1?
-
&kv == &*m.rbegin();为什么不使用普通的 for 循环呢? Range for 适用于您想要迭代整个集合的情况。 -
@ooga 道歉,没看到
-1