File tree Expand file tree Collapse file tree 2 files changed +12
-0
lines changed
lru_container/src/implements Expand file tree Collapse file tree 2 files changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,10 @@ struct ValueWithHook : public boost::intrusive::list_base_hook
2222 Value value;
2323 size_t internal_id;
2424
25+ // тестовая реализация, я понимаю, что вариант с таким стаким счетчиком
26+ // работает только до переполнения size_t.
27+ // пока думаю, как сделать лучше, например можно
28+ // обязать Value иметь поле ::key хэшируемого типа
2529 ValueWithHook () : internal_id(++id) {}
2630
2731 explicit ValueWithHook (const Value& val)
Original file line number Diff line number Diff line change @@ -16,6 +16,10 @@ struct ValueWithIdentificator {
1616 Value value;
1717 size_t internal_id;
1818
19+ // тестовая реализация, я понимаю, что вариант с таким стаким счетчиком
20+ // работает только до переполнения size_t.
21+ // пока думаю, как сделать лучше, например можно
22+ // обязать Value иметь поле ::key хэшируемого типа
1923 ValueWithIdentificator () : internal_id(++id) {};
2024
2125 explicit ValueWithIdentificator (const Value& val)
@@ -44,6 +48,10 @@ template<
4448class LRUCacheContainer_List {
4549private:
4650 using CacheItem = ValueWithIdentificator<Value>;
51+
52+ // реализация для тестирования подхода с list, я понимаю, что у
53+ // std::list линейный поиск по элементу
54+ // (т.е. сильно хуже ассимптотика, что видно и по бенчмаркам)
4755 using List = std::list<size_t >;
4856
4957 using ExtendedIndexSpecifierList = typename boost::mpl::push_back<
You can’t perform that action at this time.
0 commit comments