Здравствуйте, volodyja, Вы писали:
V>хай всем
V>возникла такая задача — мне надо создавать небольшое дерево для поиска в нём данных, выделяя всю память из заранее выделенного пула, который небольшого размера. V>начал рыть матчасть по аллокаторам, нашел примеры кода, в которых увидел пример использования аллокатора:
V>//! Template typedef std::map<..., PooledAllocator> to PooledList<Key, Value>::Type. V>template<typename Key, typename Value, class Traits = std::less<Key> > V>struct PooledMap V>{ V> typedef std::map<Key, Value, Traits, PooledAllocator<std::pair<Key, Value> > > Type; V>};
V>тут видно что из пула будут выделяться std::pair<Key, Value>, которые, вроде как, не будут содержать в себе полностью все служебные данные ноды дерева. V>вопрос — как сделать так чтоб set полностью работал только с памятью из пула что я ему подсунул?
Нормальный аллокатор должен уметь это делать — ищи примеры, их есть.
V>и вообще — годится ли set для небольших деревьях в которых будет до 100 записей и по ним надо будет постоянно искать? (удалять ничё не нужно — только изредка добавлять)
На такой задаче отсортированный вектор (массив) почти со стопроцентной гарантией будет быстрее.