myMap.rbegin()和--myMap.end()是不可能的。 无序的容器中没有“最后一个元素”。 您可能想要一个有序的容器,例如std::map并使用mymap.rbegin()->first访问最后一个元素(另见这篇文章) 编辑: mymap.end()或更清晰的检查:if (std::next(it) == last)...
是可以正确执行的,因为获取不存在的元素,unordered_map会首先创建一个。 unordered_map 是一个关联容器,其保存键值对,键值唯一,在查找,插入以及删除元素的时间复杂度都是O(1). 其底层实现是hash table. 相同key的value会被放到一个bucket中,下面绿色的小格子代表一个bucket.每一个bucket对应一系列的值。
答:unordered 按照一定的顺序,map也有顺序;两个都和进入map的顺序无关。
无序 的容器中没有“最后一个元素”。您可能想要一个有序的容器,例如 std::map 并使用 mymap.rbegin()->first 访问最后一个元素(另见 这篇文章) 编辑:要检查您的迭代器是否即将结束,只需将其递增(并可能将其保存在临时文件中)并对照 mymap.end() 或更清晰的检查: if (std::next(it) == last)原文...