首页 > 解决方案 > 如何使用迭代器查看多个值?

问题描述

假设我有一个unordered_map<int> map,我通常使用迭代器for循环来查看地图中的所有值,但我遇到了一个问题,我希望一次查看两个值,比如当前值和下一个值(如果不是nullptr)。我将如何设置该循环?

标签: c++

解决方案


这相当简单。

   auto itr1 = map.begin();
   for(auto itr2 = itr1++; itr1!=map.end(); itr2=itr1++)
   {
         // do stuff
   }

不过,老实说,访问无序映射的两个决定性元素是毫无意义的,因为它们的键之间没有依赖关系。

编辑:但是如果您希望访问下一张地图的基于元素索引(i 和 i+1) - 而不是通过存储其元素的半随机顺序- 那么如果您真的需要它,您unordered_map将不得不使用find或更改.unordered_mapmap


推荐阅读