- std :: map: текущий стандартный ассоциативный контейнер C ++ (ключ / значение), который работает как дерево позади;
- std :: unordered_map: следующий стандарт (C ++ 0x -- или в Техническом отчете 1) контейнер хеш-карты, который работает как хэш-карта ...
- std :: tr1 :: unordered_map: такой же, как предыдущий, но в пространстве имен tr1, частовстречается в компиляторах, желающих предоставить расширения TR1, но в другом пространстве имен, чем std.
- ext :: unordered_map: все та же идея, но реализация, специфичная для компилятора, поэтому она не обязательно будет точно такой же, как std :: unordered_map, по интерфейсу и реализации.
Если можете, используйте std :: unordered_map, так как это окончательное имя реализации карты хеша (если вам нужна карта хеша).Другие имена есть в случае, если ваш компилятор предоставляет их, но в отдельном пространстве имен (так как C ++ 0x официально еще не доступен).
Кстати, есть boost :: unordered_map, но это почти все та же идея и интерфейс.