如何使用std::list实现LRU
How to use std::list to implement LRU
使用列表和哈希映射,我们可以在 Java 中实现 LRU。
How would you implement an LRU cache in Java?
在 C++ 中,std::list 允许我们实现这个吗?
对于缓存中的每个元素,我们需要知道它在列表中的位置。
但是,list去掉一个位置后,是否保证这个位置之后的位置(list::iterator)不会改变?
是的,您可以使用 std::list
和 std::map
实现 LRU。
std::list
引用保留元素的迭代器不受其他元素的插入和擦除的影响。看到这个答案:Iterator invalidation rules
std::map
也是如此。看到这个答案:Does insertion to STL map invalidate other existing iterator?
使用列表和哈希映射,我们可以在 Java 中实现 LRU。
How would you implement an LRU cache in Java?
在 C++ 中,std::list 允许我们实现这个吗?
对于缓存中的每个元素,我们需要知道它在列表中的位置。 但是,list去掉一个位置后,是否保证这个位置之后的位置(list::iterator)不会改变?
是的,您可以使用 std::list
和 std::map
实现 LRU。
std::list
引用保留元素的迭代器不受其他元素的插入和擦除的影响。看到这个答案:Iterator invalidation rules
std::map
也是如此。看到这个答案:Does insertion to STL map invalidate other existing iterator?