如何从地图末尾开始[关闭]
Posted
技术标签:
【中文标题】如何从地图末尾开始[关闭]【英文标题】:How to start at end of map [closed] 【发布时间】:2013-12-12 17:35:02 【问题描述】:我希望能够从std::map
的末尾开始,以便首先检查列表末尾的项目,例如...
std::map<int> MapBasicExample;
MapBasicExample.insert(1);
MapBasicExample.insert(2);
MapBasicExample.insert(3);
MapBasicExample.insert(4);
MapBasicExample.insert(5);
当我使用MapBasicExample.begin()
时,首先检查的是值“5”,我想首先在循环中从 1 到 5 而不是像使用 MapBasicExample.begin()
时那样从 5 到 1,怎么能这个可以吗?
【问题讨论】:
std::map::rbegin
?
你的例子完全被打破了。地图具有键 和 值,并且固有地按升序排序。所以你说的没有任何意义。
大概你的意思是set
,而不是map
;并且该地图应按 1-5 排序。在任何情况下,使用rbegin
和rend
向后迭代。
@Lightness Races in Orbit,这是为了更好地解释我自己和我想要的东西,而不是像你在示例中清楚地看到的那样呈现任何类型的代码 - 因此是问题所在。我得到了我的答案,所以看来它毕竟是有道理的。
@user2142260 -1 SO 不是让任何人得到他们的答案,而是对社区有用。要使一个问题有用,它必须满足最低标准。你的没有,也应该关闭。
【参考方案1】:
您可以像这样以相反的顺序迭代地图:
for (auto it = MapBasicExample.rbegin(); it != MapBasicExample.rend(); it++)
std::cout << it->first << " = " << it->second << std::endl;
记住地图有键和值。你的例子看起来像一个集合。不过,以相反顺序迭代它们的逻辑是相似的。
【讨论】:
以上是关于如何从地图末尾开始[关闭]的主要内容,如果未能解决你的问题,请参考以下文章