Можно использовать словари в С++

Я искал словари на С#, и они, кажется, очень полезны и задавались вопросом, можно ли использовать их в С++, поскольку я пытался искать словари на С++, но, похоже, что я могу найти. Есть ли какая-то библиотека, которую я мог бы загрузить и включить в проект, или есть функция, которая делает то же самое только с другим именем.

Ответы

Ответ 1

В STL есть соответствующий тип, который называется std::map.

Он имеет ту же базовую функциональность, что и .NET-словарь, но реализация совсем другая. std::map внутренне основывается на структуре дерева с красно-черным деревом, а Dictionary внутренне использует хеш-таблицу.

Если вы просто ищете что-то с таким же поведением, std::map будет делать, но если у вас есть большие объемы данных, вы должны знать о разных характеристиках производительности.

Ответ 3

Здесь std::map для логарифмического времени доступа (обычно на основе реализации дерева) и std::unordered_map (начиная с С++ 11) для ожидаемого постоянного, наихудшего времени линейного доступа (обычно на основе реализации хэширования).