【问题标题】:How to use std::list to implement LRU如何使用 std::list 实现 LRU
【发布时间】:2015-08-29 14:20:07
【问题描述】:

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

How would you implement an LRU cache in Java?

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

对于缓存中的每个元素,我们需要知道它在列表中的位置。 但是,去掉一个位置后,list是否保证这个位置之后的位置(list::iterator)不会改变?

【问题讨论】:

    标签: c++ list std lru


    【解决方案1】:

    是的,您可以使用std::liststd::map 实现LRU。

    std::list 引用保留元素的迭代器不受其他元素的插入和擦除的影响。看到这个答案:Iterator invalidation rules

    std::map 也是如此。看到这个答案:Does insertion to STL map invalidate other existing iterator?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多