【发布时间】:2018-07-08 19:03:38
【问题描述】:
我想将::iterator 放到list 的最后一个元素。
我的理解是你可以用.begin()得到列表的.front()的迭代器,但是.back()呢?由于列表边界不包括最后一个元素,.end() 将是列表的 back() 元素之后的迭代器。
我尝试使用.rbegin(),从逻辑上讲这似乎正是我想要的,但它似乎返回了reverse_iterator 类型,这导致我的代码类型不匹配。
【问题讨论】:
-
你的代码是什么?
rbegin()是正确使用的函数,为什么您的代码不能与reverse_iterator一起使用? -
@AlanBirtles,因为它的类型是
iterator,而不是reverse_iterator,而且它们似乎没有映射 -
但是为什么你的代码必须使用
iterator?这就是模板代码的用途 -
@AlanBirtles 如果不使用
list<…>::iterator,我还能如何将指向std::list链表元素的指针保存在std::map中?这是针对 LRU 缓存的 C++ 实现,并且根据相关问题,我的方法已经产生了最佳运行时! stackoverflow.com/a/51236501/1122270 -
好吧,如果它在您的问题中说...发布minimal reproducible example,获得正确答案
标签: c++ list iterator listiterator