如何使用std :: list来实现LRU

时间:2015-08-29 14:20:08

标签: c++ list std lru

使用列表和哈希映射,我们可以用Java实现LRU。

How would you implement an LRU cache in Java?

在C ++中,std :: list允许我们实现这个吗?

对于缓存中的每个元素,我们需要知道它在列表中的位置。 但是,在删除一个位置后,列表是否确保在此位置之后的位置(list :: iterator)不会被更改?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用kernel.controllerstd::list实现LRU。

引用保留元素的

std::map迭代器不受其他元素的插入和删除的影响。请参阅此答案:Iterator invalidation rules

std::list也是如此。请参阅此答案:Does insertion to STL map invalidate other existing iterator?