LRU コンテナ

一定のサイズを保ち、新たに要素が加えられたときに
LRU (Least Recently Used) な要素を削除する、キャッシュのような働きをする
C++のコンテナを作ってみました。
内部で list と set を保持していて、要素の追加の他に、begin、end、rbegin、rendを
持っています。(といっても、内部で持っているlistのイテレータをそのまま丸投げしている
だけですが)

要素の追加は add メンバ関数で行います。
add メンバ関数は、2引数をとり、boolを返します。
1番目の引数は追加したい要素で、2番目の引数は削除された要素を返すための参照です。
戻り値が true のときに2番目の参照元に削除された要素が入ります。

サンプルの域を出ていない程度の規模のものですが、一応zlib/libpngライセンス
という形で公開します。

https://osdn.net/downloads/users/23/23651/lru.zip