Cache menos usado recentemente usando C ++

Estou tentando implementar o cache LRU usando C ++. Gostaria de saber qual é o melhor design para implementá-los. Eu sei que o LRU deve fornecer find (), adicionar um elemento e remover um elemento. A remoção deve remover o elemento LRU. quais são as melhores ADTs para implementar isso Por exemplo: se eu usar um mapa com elemento como contador de valor e tempo como chave, posso pesquisar em O (logn), Inserindo é O (n), excluindo é O (logn).

questionAnswers(7)

yourAnswerToTheQuestion