从给定的映射迭代器进行反向迭代
我想使用 map::find(key)
在地图中查找一个元素,然后从找到该元素的位置开始以相反的顺序迭代地图,直到开始(即直到 map::rend()
)。
但是,当我尝试将迭代器分配给反向迭代器时,出现编译错误。我该如何解决这个问题?
I want to find an element in the map using map::find(key)
, and then iterate the map in reverse order from the point where I found the element, till the beginning (i.e. until map::rend()
).
However, I get a compile error when I try to assign my iterator to a reverse_iterator. How do I solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过构造函数将迭代器转换为反向迭代器应该可以正常工作,例如
std::map::reverse_iterator rit(mypos)
。使用 std::vector 的最小示例:
Converting an iterator to a reverse iterator via the constructor should work fine, e.g.
std::map<K, V>::reverse_iterator rit(mypos)
.A minimal example using std::vector:
明确转换:
Make the conversion explicit: