【发布时间】:2022-01-03 10:14:10
【问题描述】:
我有一个存储整数计数的 unordered_map。我想遍历地图,但不是获取所有条目,我只想获取第一个 K。保证地图有超过 K 个条目。
我在执行以下操作时遇到了问题:
unordered_map<int, int> u_map;
// Logic to populate the map
for(auto it=u_map.begin(); it!=u_map.begin()+2; it++)
cout<<it->first<<" "<<it->second<<endl;
表达式 u_map.begin()+2 导致问题。
那么是否可以在 C++ 中使用 for_each 循环仅获取映射的前 K 个条目?
【问题讨论】:
-
您可以使用
std::advance或std::next。地图不提供随机访问迭代器,这就是为什么你拥有它会导致错误。更多信息:stackoverflow.com/a/21626211/920069
标签: c++ stl unordered-map