我选择了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