使用列表和哈希映射,我们可以用Java实现LRU。
How would you implement an LRU cache in Java?
在C ++中,std :: list允许我们实现这个吗?
对于缓存中的每个元素,我们需要知道它在列表中的位置。 但是,在删除一个位置后,列表是否确保在此位置之后的位置(list :: iterator)不会被更改?
答案 0 :(得分:1)
是的,您可以使用kernel.controller
和std::list
实现LRU。
std::map
迭代器不受其他元素的插入和删除的影响。请参阅此答案:Iterator invalidation rules
std::list
也是如此。请参阅此答案:Does insertion to STL map invalidate other existing iterator?