122得票3回答
如何在无序容器中为用户定义的类型专门设计std::hash<Key>::operator()函数?

支持在std :: unordered_set&lt;Key&gt;和std :: unordered_map&lt;Key,Value&gt;中使用用户定义的键类型, 需要提供operator ==(Key,Key)和一个哈希函数:struct X { int id; /* ... */ }...

81得票10回答
如何在C++中创建一组无序的整数对集合?

以下程序无法编译整数对的无序集合,但可以编译整数。是否可以在自定义类型上使用unordered_set及其成员函数,如何定义? #include &lt;unordered_set&gt; ... class A{ ... private: std::unordered_set&...

62得票5回答
无序映射/集合中元组的通用哈希函数

为什么std::unordered_map&lt;tuple&lt;int, int&gt;, string&gt;不能直接使用?定义tuple&lt;int, int&gt;的哈希函数很麻烦。template&lt;&gt; struct do_hash&lt;tuple&lt;int, i...

56得票3回答
如何在C++中遍历无序集合?

假设我有一个无序集合unordered_set&lt;int&gt; my_set; myset.insert(1); myset.insert(2); myset.insert(3); 如何遍历它?我不需要按任何顺序遍历-只要能够访问每个元素就可以了。我尝试过for (int i = 0; ...

47得票2回答
将向量的元素添加到无序集合中

有没有一种简单的方法将vector的所有元素添加到unordered_set中?它们都是同一类型。目前,我正在使用for循环,想知道是否有更好的方法。

37得票5回答
如何在C++中使用unordered_set来处理自定义类?

我该如何在unordered_set中存储一个类的对象?我的程序需要频繁检查这个unordered_set中是否存在某个对象,如果存在,则对该对象进行一些更新。 我已经在网上查找了如何使用unordered_set,但遗憾的是大多数教程都是关于如何在int或string类型上使用它。但是我该...

34得票6回答
使用std::unique_ptr的std::unordered_set

假设我有一组 unique_ptr:std::unordered_set &lt;std::unique_ptr &lt;MyClass&gt;&gt; my_set; 我不确定如何安全地检查集合中是否存在给定指针。通常的方法可能是调用my_set.find(),但我应该传递什么参数? 从外...

33得票2回答
使用自定义哈希函数向无序集合中插入元素

我有以下代码用于创建一个 unordered_set&lt;Interval&gt;。这段代码可以编译通过。struct Interval { unsigned int begin; unsigned int end; bool updated; //true if conca...

31得票5回答
调用“unordered_set <vector<int>>”的隐式删除默认构造函数

尝试定义一个vector的unordered_set时会出现错误,错误提示为:“调用了unordered_set&lt; vector&lt;int&gt; &gt;的已删除默认构造函数”。但是,如果定义一个常规的(有序的)set:set&lt; vector&lt;int&gt; &gt;则...

27得票2回答
标准容器没有std::hash的专门化吗?

我 刚刚 发现自己有点惊讶,无法简单地使用一个 std::unordered_set&lt;std::array&lt;int, 16&gt; &gt; test; 因为似乎没有针对std::array的std::hash专门化。为什么会这样?还是我没有找到它?如果确实没有,下面的实现尝...