Является ли hash_map частью STL?

Быстрый вопрос... Является ли hash_map частью STL?

Ответ 1

В STL есть hash_map, но стандартная библиотека С++ не.

Из-за распространенного заблуждения вы можете подумать о стандартной библиотеке С++ как о "STL" или о части вашей инструментальной цепочки, реализующей стандартную библиотеку С++, как "реализация STL". Это не так.

Также очень стыдно, что и MSVС++, и GCC (которые реализуют hash_map как расширение для компилятора), поместите его в std namespace, что очень вводит в заблуждение. * Вздох *

С++ 11 ввел std::unordered_map, который не отличается.

Ответ 2

Цитата из Википедии (выделено мной):

На странице STL:

Стандартная библиотека шаблонов (STL) - это библиотека программного обеспечения частично, включенная в стандартную библиотеку С++.

... и затем hash_map страница

В языке программирования С++, hash_map - это имя хеширования ассоциативный контейнер в стандарте Библиотека шаблонов. Это обеспечивается несколько разработчиков, таких как GNU Компилятор С++ и Microsoft Visual С++. Это не часть С++ Стандартная библиотека, но С++ Технический отчет 1 содержит аналогичный контейнер unordered_map, который будут включены в предстоящий С++ 0x стандарт.

Итак,

  • ДА это часть STL.
  • Но это НЕ часть стандартной библиотеки.
  • Но это поддерживается несколькими очень популярными реализациями.

Ответ 3

Проблема заключается в том, что не существует согласованного значения для термина STL. Является ли hash_map частью стандартного С++? Нет, это не так. Однако unordered_map будет частью нового стандарта С++ и представляет собой карту, реализованную с использованием хэширования.

Ответ 4

Да, hash_map является частью STL. Тем не менее, это не часть стандартной библиотеки С++ 03.

Ответ 5

hash_map является частью STL, но не является частью стандартного С++ (С++ 11). И аналогичная реализация hash_map с именем "std:: unordered_map" в стандартном С++: http://www.cplusplus.com/reference/unordered_map/unordered_map/

В настоящее время GNU С++ и MSVС++ реализовали hash_map для расширения компилятора, а также Boost. Между тем, SGI имеет собственную реализацию для hash_map. Подробнее см. http://www.sgi.com/tech/stl/hash_map.html.

Ответ 6

Нет... Hash_map не является частью стандарта STL.