Я реализую структуру данных хеш-таблицы, где столкновения разрешаются с использованием цепей.вектор списка. Должен ли я использовать указатели или значения?
Так как базовые данные Структура Мне нужно vector of lists.
выбор я из 2-х вариантах:
std::vector<std::list<entry> >
std::vector<std::list<entry>* >
где запись структура, которая содержит значения данных и хэш;
Вопрос: Будет ли это огромным снижением эффективности, если я использую первый вариант (вопрос рассматривается на больших входных данных)?
Заранее благодарю вас!
Вам нужно реализовать хеш-таблицу? В C++ 11 есть std :: unordered_set и std :: unordered_map (а также их «несколько» аналогов). –
Да, это для образовательной цели. –
Не используйте 'std :: list', если вы не вставляете/удаляете элементы из середины списка порядка чаще, чем вы перебираете по нему, или если 'entry' не движется и дорого копируется, или дорогой для перемещения. 'std :: list' - это' std :: '" двунаправленный связанный список ", а не' std :: '" идеальный контейнер для использования, когда вам нужен список вещей ". –
Yakk