c++ - 您如何使用迭代器查看多个值?

标签 c++

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

最佳答案

这很简单。

   auto itr1 = map.begin();
   for(auto itr2 = itr1++; itr1!=map.end(); itr2=itr1++)
   {
         // do stuff
   }
但是,说实话,访问无序映射的两个决定性元素是毫无意义的,因为它们的键之间没有依赖关系。
编辑:但是,如果您希望访问下一个 map 基于索引的元素(i和i + 1)-而不是通过unordered_map存储其元素的半随机顺序-那么您必须使用find或将unordered_map更改为map,如果您真的需要它。

关于c++ - 您如何使用迭代器查看多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63349945/

相关文章:

c++ - Qt 自定义小部件如何将 View 更改通知 ScrollArea 父级

c++ - 从字符串构造 char*const*

c++ - 为什么 uint128_t 没有 uint128_t 的移位重载?

c++ - 如何统一初始化 unique_ptr 的映射?

c++ - 两个重叠的互斥锁会导致死锁吗?

c++ - 每 1 秒调用一个函数(精确地)

c++ - 解决 C、C++ 中隐式包含的想法

c++ - 将 GDAL 合并到 MSVS 2008 C++ 项目中

c++ - (C++) 2^32=0 但 2^31 * 2 有效

c++ - 如何在 qt gui 应用程序中使用动态库?