LRU缓存和快速定位对象通常使用哪些数据结构?

问题描述

| 我打算实现一个HashTable来快速定位对象,这对我的应用程序很重要。 但是,我不喜欢扫描的想法,并且可能不得不锁定整个表才能找到上次访问的对象。表可能会很大。 通常使用哪些数据结构来克服这一问题? 例如我以为我可以将对象以及缓存放入FIFO中,以了解事物的年代。但这并不会支持LRU算法。 有任何想法吗?鱿鱼怎么做?     

解决方法

        链接列表非常适合LRU缓存。对于链表中的索引查找(将条目移至链表的最近使用的末尾),请使用HashTable。最近最少使用的条目将始终位于链接列表的最后。     ,        您可能会发现有关使用STL容器(或基于“ 0”的替代方法)的LRU缓存实现的本文很有趣。使用STL,基本上,您可以将映射(用于快速键值查找)和映射中单独的键或迭代器列表结合使用(以方便维护访问历史记录)。