c++ - 如何使用迭代器查看多个值?
问题描述
假设我有一个unordered_map<int> map
,我通常使用迭代器for
循环来查看地图中的所有值,但我遇到了一个问题,我希望一次查看两个值,比如当前值和下一个值(如果不是nullptr
)。我将如何设置该循环?
解决方案
这相当简单。
auto itr1 = map.begin();
for(auto itr2 = itr1++; itr1!=map.end(); itr2=itr1++)
{
// do stuff
}
不过,老实说,访问无序映射的两个决定性元素是毫无意义的,因为它们的键之间没有依赖关系。
编辑:但是如果您希望访问下一张地图的基于元素索引(i 和 i+1) - 而不是通过存储其元素的半随机顺序- 那么如果您真的需要它,您unordered_map
将不得不使用find
或更改.unordered_map
map
推荐阅读
- python - 如何计算 JSON 值
- rust - 为什么 Rust RwLock 在 fork 中表现异常?
- r - R ggrides 包绘制平均线(NOT MEDIAN)
- c - C-从二进制文件中读取字符串不起作用
- c# - 如何在 PropertyGrid 中显示文件名列表
- python - 在 on_start 方法中访问 kivy 屏幕 ID
- sql - 仅当每行 2 列相等时才选择行
- amazon-web-services - AWS Comprehend + Pyspark UDF = 错误:无法腌制 SSLContext 对象
- java - 使用 Java 调用 C# ASP.net web api 的 Android 工作室
- ios - Ipad 上 swiftUI 中工作表的显示不一致