빠른 질문 ... hash_map은 STL의 일부입니까?hash_map은 STL의 일부입니까?
답변
The STL은 hash_map
이지만, C++ 표준 라이브러리 does not입니다.
a common misconception으로 인해 C++ 표준 라이브러리를 "STL"로 생각하거나 C++ 표준 라이브러리의 툴체인 구현 부분을 "STL 구현"으로 생각할 수 있습니다. 그렇지 않습니다.
또한 큰 수치입니다 매우 오해의 소지가 입니다 (컴파일러 고유의 확장으로 hash_map
를 구현) 모두 MSVC++ 및 GCC, place it in the std
namespace. * 한숨 *
C++ 11은 비슷하지 않은 std::unordered_map
을 도입했습니다.
인용 위키 백과 (강조는 추가) :
을 STL 페이지에서 :
표준 템플릿 라이브러리 (STL)는 C++ 표준 라이브러리에 포함 된 소프트웨어 라이브러리 부분적으로입니다.
은 ... 다음 hash_map 페이지 C++ 프로그래밍 언어에서
,
hash_map
에서 표준 템플릿 라이브러리의 해시 연관 컨테이너의 이름입니다. GNU C++ 컴파일러와 Microsoft의 Visual C++와 같은 몇 가지 구현 자에 의해 에 의해 제공됩니다. 그것은 C++ 표준 라이브러리의 일부가 아니라는 C++ 기술 보고서 1 은 곧 C + +0 표준에 포함될 매우 유사한 용기unordered_map
가 포함되어 있습니다. 그래서 짧은
,
- 은 YES 그것은 STL의 일부입니다.
- 표준 라이브러리에는이 아닙니다.
- 그러나 널리 사용되는 여러 구현에서 지원됩니다.
@razlebe : 예 또는 아니오라고 말할 수는 없습니까? – forsvarir
@forsvarir : 물론 wikipedia를 인용해도 내 대답이 신뢰성있게됩니다. ;) – razlebe
중요하게도, 이식성이 중간 정도이므로, 어쨌든 사용하기로 결정했다면 컴파일러 문서를 확인하여 어떤 헤더와 네임 스페이스가 있는지 알아보십시오. 아마도 #include
아니요 ... Hash_map은 STL 표준의 일부가 아닙니다.
STL 표준과 같은 것은 없습니다. –
@AlexandreC .: ISO, ANSI 등의 STL 표준은 없지만 STL 문서 (예 : sgi.com)를 사실상의 표준으로 간주 할 이유는 없습니다. –
@Alexandre C : ** STL **의 정의에 따라 몇 가지가 있습니다. –
STL이라는 용어에는 합의 된 의미가 없다는 것이 문제입니다. hash_map
은 Standard C++의 일부입니까? 아니, 그렇지 않아. unordered_map
은 새로운 C++ 표준의 일부가 될 것이며 해시를 사용하여 구현 된지도입니다.
그리고 ** STL ** 정의에 쉽게 사용할 수있는 구현이 포함되어 있다면 hash_map이 포함될 수 있습니다. –
합의 된 의미가 있습니다. 그것은 일부 사람들이 그것에 동의하지 않는 것입니다. –
@Tomalak 어떤 사람들은 동의하지 않으면 동의하지 않습니다. –
예, hash_map
는 STL의 일부입니다. 단, 이 아닌 부분의 C++ 03의 표준 라이브러리입니다.
정말요? C++ 0x FDIS에서'hash_map'을 찾을 수 없습니다. 당신의 주장을 뒷받침 할 증거가 있습니까? – fredoverflow
오, 당신이 다른 STL을 의미, 잠깐. – fredoverflow
@FredOverflow : 귀하의 오해에도 불구하고 _ 단 하나의 STL_ 만 있습니다. –
hash_map은 STL의 일부이지만 Standard C++ (C++ 11)의 일부는 아닙니다. 컴파일러 확장뿐만 아니라 부스트 http://www.cplusplus.com/reference/unordered_map/unordered_map/
현재, GNU C++ 및 MSVC++에서 구현 한 hash_map : 그리고 표준 C에서 "표준 : unordered_map도"++라는 이름의 hash_map의 비슷한 구현이있다. 한편, SGI는 hash_map에 대한 자체 구현을 가지고 있습니다. 자세한 내용은 http://www.sgi.com/tech/stl/hash_map.html을 참조하십시오.
- 1. std :: string은 STL의 일부입니까?
- 2. STL의 BST 구현
- 3. 반환 유형이 지우기의 일부입니까?
- 4. alloca는 C++ 표준의 일부입니까?
- 5. boost.log는 공식적으로 부스트의 일부입니까?
- 6. 제한 stl의 벡터 max_size
- 7. 접근성은 귀사의 개발 프로세스의 일부입니까?
- 8. 비 데이터 클래스 모델의 일부입니까?
- 9. Boost.Locale은 공식적인 부스트 릴리스의 일부입니까?
- 10. List.ForEach는 기술적으로 LINQ의 일부입니까, 아니라?
- 11. ATLComTime.h는 재배포 가능 항목의 일부입니까?
- 12. JCE는 Java SE 6의 일부입니까?
- 13. C++ STL의 문자열 이진 데이터에 대한 eqivalent
- 14. STL의 성능 O (LN (N)) 질문
- 15. 중첩 된 함수는 C 표준의 일부입니까?
- 16. GWT + eclipse, 어떤 파일이 내 소스의 일부입니까?
- 17. 내가 버퍼로 사용하는 STL의 컨테이너를 사용하려는
- 18. C++ STL의 집합과 해시 집합의 차이점은 무엇입니까?
- 19. stl의 할당자를 실제 소스 코드로 바꾸는 방법
- 20. Java PermGen 공간이 전체 VM 메모리의 일부입니까?
- 21. stl의 멀티 맵은 어떻게 존중 순서를 삽입합니까?
- 22. STL의 const_iterator에서 데이터를 가져 오는 방법은 무엇입니까?
- 23. ASP.NET AJAX 4.0은 ASP.NET 4.0의 일부입니까?
- 24. STL의 문자열 클래스를 사용할 수 없음
- 25. 연산자 오버로드 STL의 성능 저하는 무엇입니까
- 26. MVC Contrib Grid는 Asp.Net MVC 2.0의 일부입니까?
- 27. Can. (마침표)는 URL 경로 부분의 일부입니까?
- 28. 이미지 속성이 DOM의 일부입니까 (jQuery - 다른 브라우저와의 웹킷 불일치)?
- 29. 나는 C++에서 큐 목록을 만들려면 STL의 목록 개체
- 30. fzero가 표준 MATLAB 패키지에 있거나 최적화 패키지의 일부입니까?
아니요. 'unordered_map'을 사용하십시오. 정말로 해시 맵이 필요합니까? 'std :: map'이 실제 요구 사항을 충족시키는 지 알 수 없습니다. –
@Martin :'hash_map' ***은 *** STL의 일부입니다. –
STL을 정의하십시오. C++ 표준 라이브러리를 의미합니까? 아니면 몇 년 전에 발표 된 원래 표준 템플릿 라이브러리를 의미합니까? 나중에 부분적으로 현재 C++ 표준으로 채택 되었습니까? STL을 비공식적으로 stdlib로 사용한다면 일반적으로 신경 쓰지 않지만,이 경우 중요합니다. 표준 C++에는'hash_map'이 없습니다. STL이 있습니다. (Future C++과 Boost에는 해시 맵인 unordered_map이 있습니다.) – GManNickG