STL имеет hash_map
, но стандартная библиотека C ++ не .
Из-за распространенное заблуждение, вы можете думать о стандартной библиотеке C ++ как о «STL», или о частях реализации стандартной библиотеки C ++ стандартной библиотеки C ++ как о «реализации STL».
Это не так.
Жаль, что и MSVC ++, и GCC (которые реализуют hash_map
как расширение, специфичное для компилятора), помещают его в пространство имен std
, которое не только сильно вводит в заблуждение,но также незаконно по стандарту.* вздох *
В C ++ 11 введено std::unordered_map
, что не отличается.