Какова лучшая (временная и пространственная) структура данных на основе словаря? У меня есть большой набор строк (1 миллиард) одинакового размера (от 32 до 64), и я хотел бы сохранить их в словаре, чтобы я мог выполнить тест набора элементов.Эффективная структура данных на основе словаря
0
A
ответ
0
Используйте std::map, в котором значения key
обычно используются для сортировки и уникальной идентификации элементов, а отображаемые значения хранят содержимое, связанное с этим ключом.
Если вам не нужна карта, отсортированная по ее ключам, используйте std::unordered_map, которая быстрее, чем карты, для доступа к отдельным элементам по их ключу.
Вы можете прочитать на map
v/s unordered_map
в this question.
Это редкий, чтобы иметь структуру данных, которая лучше всего по времени и эффективности метрики пространства. Выяснение предполагаемой модели использования будет хорошей идеей здесь - например, вы только вставляете свои ключи один раз, а затем просматриваете их много раз или часто добавляете и удаляете ключи, или вы вставляете их один раз, а затем смотрите только их один раз, или .... – twalberg
Ограничены ли строки символами, которые они содержат? (Шестнадцатеричный? Только прописные?) – 1201ProgramAlarm