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

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

STL имеет hash_map , но в стандартной библиотеке C ++ этого нет .

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

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

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

Цитирование Wikipedia (выделено мной):

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

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

… и затем с страницы hash_map

На языке программирования C ++ hash_map – это имя хешированного ассоциативного контейнера в стандартной библиотеке шаблонов . Он предоставляется несколькими разработчиками, такими как компилятор GNU C ++ и Visual C ++ Microsoft. Он не является частью стандартной библиотеки C ++ , но технический отчет C ++ 1 содержит очень похожий контейнер unordered_map , который будет включен в следующий стандарт C ++ 0x.

Короче говоря,

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

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

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

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

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

Нет … Hash_map не входит в стандарт STL.

  • У boost есть тип данных для заданных операций, который проще, чем STL?
  • STL-вектор и безопасность streamов
  • C ++ 11 STL контейнеры и безопасность streamов
  • Удаление STL не работает должным образом?
  • Как реализован C ++ std :: vector?
  • Как получить случайный элемент из контейнера C ++?
  • Получение вектора в функцию, которая ожидает вектор
  • Есть ли способ доступа к базовому контейнеру контейнеров-контейнеров STL?
  • Спецификация шаблона Функция перегрузки функций VS
  • Почему контейнеры C ++ не допускают неполные типы?
  • Почему я не могу push_back unique_ptr в вектор?
  • Давайте будем гением компьютера.