2012-01-25 1 views
1

나는 google-sparsehash library 작업을 시도하고 내가 링크에 설명 된 해시 라이브러리를 포함하려면를 #include와 방법엑스 코드에서 내선, TR1, 또는 __gnu_cxx와 해시, C++

using ext::hash; // or __gnu_cxx::hash, or maybe tr1::hash, depending on your OS 

그리고 각각을 시도해 보았습니다.

#include <ext/hash> 
#include <ext> 
#include <__gnu_cxx> 
#include <tr1> 

아무 것도 XCode와 작동하지 않습니다. 나는 또한 "사용"했습니다. 여기서 __gnu_cxx에는 "해시"가 포함되지 않는다고 들었습니다. OS X (10.6.8)의 XCode (3.2.6)에이 라이브러리를 어떻게 설명합니까?

더 일반적으로 Mac/XCode에 설명 된 해시 함수는 어디에 있습니까? C++ 11에서

+0

저를 수정? Google 해시지도는 C++의 일부인 STL과 관련이있는 것 같습니다 – AJG85

+0

@ AJG85 : XCode는 C 및 C++도 지원합니다. iOS 이외에도 MacOS를위한 개발 – Managu

+0

@Managu 아, 고맙습니다. 수년 동안 Apple 제품을 보지 못해서 확신이 들지 않았습니다. – AJG85

답변

3

: C++ 03 TR1과에서

#include <functional> 
using std::hash; 

:

#include <tr1/functional> 
using std::tr1::hash; 
+0

'''은''std :: tr1 :: hash'을 정말로 정의합니까? 나는 그렇게 생각했으나 확인할 문서를 찾을 수 없었다. – Managu

+0

@Managu : 나는 쓸데없는 문서에 돈을 쓰지 않고 확인할 수 없다. 하지만 확실히 GNU 구현에있어, 확실히 C++ 11에서는' '으로 끝납니다. 모든 표준 함수 객체는''에 정의되어 있습니다. –

0

를 지금까지 내가 말할 수있는, 해시에서 얻을 수하지 않는 것 다양한 해시 테이블에 대한 정의를 가져 오지 않고도 펑터를 사용할 수 있습니다. 최소한 라이브러리 내부 헤더를 속일 필요는 없습니다.

시도 :

#include <ext/hash_map> 
using __gnu_cxx::hash; 

나 : 내가 틀렸다하지만 목표 C에 대한 엑스 코드와 아이폰 OS가 아닌 경우

#include <tr1/unordered_map> 
using std::tr1::hash; 
관련 문제