разница в реализации карты и словаря - PullRequest
2 голосов
/ 21 апреля 2011

Я знаю, в чем разница с точки зрения того, где карта или где используется словарь, но я удивился, почему Dictionary<TKey, TValue> в .NET предположительно использует , из того, что я прочитал здесь , связанный список под обложками, и я знаю, что std::map<K,T> (C ++) реализован в виде красно-черного дерева.

Почему они не одинаковы под прикрытием, есть ли разница в производительности (для которой я знаю, что оптимизирована структура данных C ++) или почему словарь .NET на самом деле был бы связанным списком под прикрытием и C ++ std :: map, а затем красно-черное дерево, которое, насколько мне известно, совершенно разные структуры данных, в основном используются для совершенно других целей.

Возможно, эти две вещи служат разным целям, а может, я просто не знаю.

Кто-нибудь может уточнить?

1 Ответ

3 голосов
/ 21 апреля 2011

Dictionary<> - это хэш-таблица , родственная std::unordered_map<>.

SortedDictionary<>является красно-черным деревом, сродни std::map<>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...