Czy hash map jest częścią STL?

Quick question...Is hash_map część STL?

Author: razlebe, 2011-05-06

6 answers

Stl ma hash_map, ale Biblioteka Standardowa C++ Nie .

Ze względu na powszechne nieporozumienie , Możesz myśleć o bibliotece standardowej C++ jako o "STL", lub o częściach implementacji biblioteki standardowej C++ jako o"implementacji STL". Nie jest.

Jest również wielkim wstydem, że zarówno MSVC++, jak i GCC (które implementują hash_map jako rozszerzenie specyficzne dla kompilatora), umieszczają je w przestrzeni nazw std , która jest wysoce mylące. * sigh *

C++11 wprowadził std::unordered_map, co nie jest odmienne.

 96
Author: Lightness Races in Orbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:23

Cytowanie Wikipedii (podkreślenie dodane):

Ze strony STL :

Standard Template Library (stl) jest biblioteką oprogramowania częściowo zawartą w bibliotece standardowej C++.

...a następnie ze strony hash_map

W języku programowania C++ , hash_map to nazwa haszowanego kontener asocjacyjny w standardzie Biblioteka Szablonów . Jest on dostarczany przez kilku realizatorów, takich jak GNU Kompilator C++ i Visual Microsoftu C++. nie jest częścią C++ Biblioteka standardowa , Ale C++ Raport techniczny 1 zawiera bardzo podobny pojemnik unordered_map, który będą zawarte w nadchodzącym C++0x standard.

W skrócie,

  • tak jest częścią STL.
  • ale nie jest to część biblioteki standardowej.
  • ale jest wspierany przez kilka bardzo popularnych implementacji.
 15
Author: razlebe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-01 05:31:42

Problem polega na tym, że nie ma uzgodnionego znaczenia dla terminu STL . Czy hash_map jest częścią standardowego C++? Nie, nie jest. unordered_map będzie jednak częścią nowego standardu C++ i jest mapą zaimplementowaną za pomocą hashowania.

 7
Author: Neil Butterworth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-06 08:14:41

Tak., hash_map jest częścią STL . Jednak jest nie część biblioteki standardowej C++03.

 5
Author: Alexandre C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-26 19:13:04

Hash_map jest częścią STL, ale nie częścią standardowego C++(C++11). I jest podobna implementacja hash_map o nazwie "std:: unordered_map" w standardowym C++: http://www.cplusplus.com/reference/unordered_map/unordered_map/

Obecnie GNU C++ i MSVC++ zaimplementowały hash_map dla rozszerzenia kompilatora, a także Boost. Tymczasem SGI ma własną implementację dla hash_map. Możesz odnieść się do http://www.sgi.com/tech/stl/hash_map.html Po szczegóły.

 2
Author: holybiner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-17 06:51:05

Nie...Hash_map nie jest częścią standardu STL.

 -2
Author: Raghuram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-06 08:13:02