C++에서 해시 함수를 사용하는 방법을 모르지만 hash_map
을 사용할 수 있다는 것을 알고 있습니다. g ++는 단순히 #include <hash_map>
을 포함하여이를 지원합니까? hash_map
을 사용하는 간단한 예는 무엇입니까?C++에서 hash_map 예제를보고 싶습니다.
답변
현재의 C++ 표준은 해시지도를 가지고 있지 않지만, 앞으로 C++ 0X 표준은 않습니다, 이들은 이미 "순서가없는지도"의 형태 ++ g에 의해 지원됩니다
#include <unordered_map>
#include <iostream>
#include <string>
using namespace std;
int main() {
unordered_map <string, int> m;
m["foo"] = 42;
cout << m["foo"] << endl;
}
위해 이 컴파일을 얻기 위해, 당신은 당신이 사용되는 g ++ 말할 필요가 C++ 0X :
g++ -std=c++0x main.cpp
이지도는 일을하는 대신 자신의 유형에 대한 사용자 지정 operator<()
를 제공하는 것을 제외하고 표준 : :지도,처럼 거의 , 사용자 정의 해시 함수를 제공해야합니다 - suitab le 함수는 정수 및 문자열과 같은 유형에 대해 제공됩니다.
+1 : 당신은 TR1을 언급하기 위해 그 대답을 편집해야합니다 ... –
@ 코넬 아니,하지 않아야합니다. tr1 네임 스페이스는 일부 컴파일러가 제공하는 확장 일뿐입니다. 나는 그것을 내 자신의 코드에서 사용하지 않는다. –
@Neil, sooo, GCC 3.4, MSVC 및 기타 non-C++ 0x 컴파일러를 사용하는 사람은 TR1을 사용해서는 안되지만 C++ 0x 라이브러리 확장이 즉시 지원 될 때까지 기다려야합니까? –
위키 백과는 결코 아래로 할 수 없습니다 :
hash_map 비표준 확장입니다. unordered_map은 std :: tr1의 일부이며 C++ 0x의 std 네임 스페이스로 이동됩니다. http://en.wikipedia.org/wiki/Unordered_map_%28C%2B%2B%29
#include <tr1/unordered_map>
다음 표준 C++ unique hash container을 제공합니다. 사용법 :
std::tr1::unordered_map<std::string,int> my_map;
my_map["answer"] = 42;
printf("The answer to life and everything is: %d\n", my_map["answer"]);
C++ 스타일 컨테이너로 C 스타일 출력? 아야! – Bill
현실 세계에 오신 것을 환영합니다. :) –
TR1에 입학 이름 (그리고 다음 표준에 대한 초안) std::unordered_map
, 그래서 당신이 사용할 수있는 경우에, 당신이 사용하고자하는 사람이 아마. 그 외에는
은 그것을 사용하는 많은 당신이 std::map
의 항목을 통과하면, 그들은 operator<
에 의해 지정된 순서대로 나올/있음, 단, std::map
를 사용하여 비슷하지만 unordered_map도를 들면, 순서는 일반적으로 의미가 없다.
- 1. hash_map 및 stdext :: hash_map?
- 2. C에서 ActiveRecord 패턴을 배우고 싶습니다
- 3. hash_map questions/tutorial
- 4. C에서 동적으로 SQL Server를 관리하고 싶습니다.
- 5. 지도 대 C++의 hash_map
- 6. hash_map C++ stl에서 충돌 발생
- 7. C# Hashtable 대 C++ hash_map
- 8. 맥 OSX에서 헤더를 hash_map 찾을 수 없습니다
- 9. stl hash_map 단순 해시 함수보다 느림?
- 10. g ++ hash_map deprecation 경고를 제거하는 방법은 무엇입니까?
- 11. C에서 웹 서비스를 사용하여 서버에 파일을 업로드하고 싶습니다.
- 12. 웹 개발으로 전환하고 싶습니다.
- 13. hash_map 및지도가 더 빠릅니까? 10000 개 미만의 항목
- 14. modrewrite 싶습니다
- 15. C에서 #
- 16. - 내가 파이썬에서이 같은 그래프를하고 싶습니다 수평 바
- 17. 가장 빠른 사전 패키지 키 - 값 쌍 검색 전 C에서 다음과 같은 데이터 구조를 구현하고 싶습니다
- 18. 내가 내 C# 응용 프로그램에 사용할 수 있도록하고 싶습니다 나는 C에서 내 보낸 된 함수를
- 19. 트위터를 추가하고 싶습니다. 트위터를 추가하고 싶습니다. OAuth with facebook connect
- 20. 기본적으로 내가 싶습니다 펄
- 21. Qooxdoo에서 일하고 싶습니다. 도와주세요
- 22. java.sql.ResultSet에서 확장하고 싶습니다
- 23. EC2 인스턴스 싶습니다 스케줄러
- 24. Qt를 시작하고 싶습니다
- 25. 조건부 cronjob을 만들고 싶습니다.
- 26. 마스터 데이터베이스를 복원하고 싶습니다 ....?
- 27. 내가 알고 싶습니다 7
- 28. 리눅스 커널에 기여하고 싶습니다.
- 29. iphone에 정보를 저장하고 싶습니다
- 30. 문자열에 문자가 있는지보고 싶습니다.
@BlueRaja : 예, 실제로 hash_map은 C++의 일부라고 믿는 사람들처럼 멋진 혼란을 일으 킵니다. 나는 다른 프로그래밍 관련 질문과 마찬가지로 이것을 집에두고 있다고 생각합니다. 그렇지 않습니까? 사람들이 Google을 사용하도록 말하면 시간과 시간을 낭비하게됩니다. 왜냐하면 그들은 나중에 질문을하기 위해 이곳에 올 때 오해와 나쁜 습관을 모두 털어 내야하기 때문입니다. 왜냐하면 그들은 정확하고 신뢰할 수없는 수천 개의 답변을 훑어보아야하기 때문입니다. – jalf
@ jalf : SO에 대한 응답이 어떻게 든 정확하고 신뢰할 수 있다고 보장되는 것처럼. –
그들은 다른 프로그래머가보고 득표 한 것으로 보장되어 초보자가 맹목적으로 Google에서 검색하는 것보다 훨씬 신뢰할 수 있습니다. – jalf