MCPcopy Create free account
hub / github.com/catboost/catboost / TLFUCache

Class TLFUCache

library/cpp/cache/cache.h:739–758  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

737
738template <typename TKey, typename TValue, typename TDeleter = TNoopDelete, typename TAllocator = std::allocator<TKey>, class TSizeProvider = TUniformSizeProvider<TValue>>
739class TLFUCache: public TCache<TKey, TValue, TLFUList<TKey, TValue, TSizeProvider>, TDeleter, TAllocator> {
740 typedef TCache<TKey, TValue, TLFUList<TKey, TValue, TSizeProvider>, TDeleter, TAllocator> TBase;
741 using TListType = TLFUList<TKey, TValue, TSizeProvider>;
742
743public:
744 typedef typename TBase::TIterator TIterator;
745
746 TLFUCache(size_t maxSize, bool multiValue = false, const TSizeProvider& sizeProvider = TSizeProvider())
747 : TBase(TListType(maxSize, sizeProvider), multiValue)
748 {
749 }
750
751 TValue& GetLeastFrequentlyUsed() {
752 return TBase::List.GetLeastFrequentlyUsed()->Value;
753 }
754
755 TIterator FindLeastFrequentlyUsed() {
756 return TBase::Empty() ? TBase::End() : this->FindByItem(TBase::List.GetLeastFrequentlyUsed());
757 }
758};
759
760// Least Weighted cache
761// discards the least weighted items first

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected