Можно использовать словари в С++
Я искал словари на С#, и они, кажется, очень полезны и задавались вопросом, можно ли использовать их в С++, поскольку я пытался искать словари на С++, но, похоже, что я могу найти. Есть ли какая-то библиотека, которую я мог бы загрузить и включить в проект, или есть функция, которая делает то же самое только с другим именем.
Ответы
Ответ 1
В STL есть соответствующий тип, который называется std::map
.
Он имеет ту же базовую функциональность, что и .NET-словарь, но реализация совсем другая. std::map
внутренне основывается на структуре дерева с красно-черным деревом, а Dictionary
внутренне использует хеш-таблицу.
Если вы просто ищете что-то с таким же поведением, std::map
будет делать, но если у вас есть большие объемы данных, вы должны знать о разных характеристиках производительности.
Ответ 2
std:: map как Dictionary
.
Ответ 3
Здесь std::map
для логарифмического времени доступа (обычно на основе реализации дерева) и std::unordered_map
(начиная с С++ 11) для ожидаемого постоянного, наихудшего времени линейного доступа (обычно на основе реализации хэширования).