2016-11-29 3 views
0

Какова лучшая (временная и пространственная) структура данных на основе словаря? У меня есть большой набор строк (1 миллиард) одинакового размера (от 32 до 64), и я хотел бы сохранить их в словаре, чтобы я мог выполнить тест набора элементов.Эффективная структура данных на основе словаря

+0

Это редкий, чтобы иметь структуру данных, которая лучше всего по времени и эффективности метрики пространства. Выяснение предполагаемой модели использования будет хорошей идеей здесь - например, вы только вставляете свои ключи один раз, а затем просматриваете их много раз или часто добавляете и удаляете ключи, или вы вставляете их один раз, а затем смотрите только их один раз, или .... – twalberg

+0

Ограничены ли строки символами, которые они содержат? (Шестнадцатеричный? Только прописные?) – 1201ProgramAlarm

ответ

0

Используйте std::map, в котором значения key обычно используются для сортировки и уникальной идентификации элементов, а отображаемые значения хранят содержимое, связанное с этим ключом.

Если вам не нужна карта, отсортированная по ее ключам, используйте std::unordered_map, которая быстрее, чем карты, для доступа к отдельным элементам по их ключу.

Вы можете прочитать на map v/s unordered_map в this question.