我選擇了Java中的哈希表的概念,所以我意識到,對於用於自定義類的通用「哈希集合」容器,必須爲哈希函數和相應的相等函數提供定義。如何在C++中使用std :: unordered_set?
在Java中,這將意味着壓倒一切的方法
int hashCode()
和
boolean equals (Object o)
。我期待在C++的STL中使用相同的邏輯,但是在理解語法時遇到了困難。具體來說,std :: unordered_set <>接受5個模板參數(你能相信嗎?),它看起來像一個怪物,並讓我的頭旋轉。
所以我會很感激,如果人們可以舉一個簡單的例子當前玩具類:
class Some{
public :
int a;
};
其中的哈希函數返回的值,和平等測試功能返回true當且僅當成員'a'的值是相同的。
由於
http://en.cppreference.com/w/cpp/utility/hash – user1520427
'我選擇了Java中哈希表的概念[...]我期待着C++ STL中的相同邏輯請記住,Java和C++是不同的語言,需要不同的思維方式。 – fredoverflow
'Key','Hash','KeyEqual'和'Allocator'是4個參數,而不是5個。 – fredoverflow