我試圖創建一個hash_set
持有不同的文件的名稱,就像這樣:如何正確使用的hash_set在C++
struct eq {
bool operator()(const char* c1, const char* c2) {
return strcmp(c1, c2) == 0;
}
};
int main(int argc, char* argv[])
{
hash_set<const char*, hash<const char*>, eq> fileNames;
return 0;
}
,給了我很多編譯器錯誤的沿着線:
Error 1 error C2039 : 'bucket_size' : is not a member of 'std::hash<const char *>' C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xhash 264 1 Tests
Error 2 error C2065 : 'bucket_size' : undeclared identifier C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xhash 264 1 Tests
Error 3 error C2039 : 'value_type' : is not a member of 'eq' C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 419 1 Tests
Error 4 error C2146 : syntax error : missing ';' before identifier 'value_type' C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 419 1 Tests
Error 5 error C4430 : missing type specifier - int assumed.Note : C++ does not support default - int C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 419 1 Tests
Error 6 error C2602 : 'std::allocator_traits<_Alloc>::value_type' is not a member of a base class of 'std::allocator_traits<_Alloc>' C :\Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 419 1 Tests
Error 7 error C2146 : syntax error : missing ',' before identifier 'value_type' C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 242 1 Tests
Error 8 error C2065 : 'value_type' : undeclared identifier C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 242 1 Tests
Error 9 error C2059 : syntax error : '>' C : \Program Files(x86)\xDev\Microsoft Visual Studio 12.0\VC\include\xmemory0 242 1 Tests
...
什麼是'hash_set'實際上?你錯過了包含你的代碼的東西嗎? –
是的我包括: #include。 hash_set是我可以發現視覺工作室認可的唯一的東西。 –
你從哪裏得到的? 'hash_set'不是標準的,所以它必須來自其他庫。 C++ 11的'unorderd_set'如何?我不認爲我們可以在不瞭解你的'hash_set'的情況下提供幫助。 –