假设我有一个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/