Быстрый вопрос... Является ли 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.