24得票1回答
我该如何使用unordered_set?

我想要这样定义一个无序集合:unordered_set<Point> m_Points; 编译时,我收到以下错误信息: C++标准没有为此类型提供哈希。 Point类:class Point{ private: int x, y; pub...

21得票3回答
C++库方法用于两个unordered_set的交集。

我有两个unordered_set,并且想要它们的交集。我找不到一个库函数来实现这个功能。 基本上,我想要的是这样的: unordered_set<int> a = {1, 2, 3}; unordered_set<int> b = {2, 4, 1}; unor...

21得票2回答
一个 std::unordered_set 是否存在病态输入的情况?

我正在解决一个问题,即找到给定数组中不同整数的数量。我的想法是声明一个 std::unordered_set,将所有给定的整数插入集合中,然后输出集合的大小。下面是我实现这种策略的代码:#include <iostream> #include <fstream> #in...

20得票3回答
如何使用带有自定义结构体的unordered_set?

我想要使用一个自定义的struct和unordered_set。在我的情况下,这个自定义的struct代表着欧几里得平面上的二维点。我知道需要定义一个哈希函数和比较运算符,而且我已经按照下面代码的方式进行了定义:struct Point { int X; int Y; ...

20得票4回答
从无序集合中以O(1)时间复杂度获取随机元素

我看到有人提到从unordered_set中获取随机元素可以在O(1)时间内完成。我试图使用以下代码实现:std::unordered_set<TestObject*> test_set; //fill with data size_t index = rand() % tes...

20得票4回答
如何为用户定义的类型特化std::hash<T>?

问题 对于用户定义类型,其所有成员数据类型都已具有良好的std::hash专业化,作为std::unordered_map或std::unordered_set的第三个模板参数使用什么样的std::hash专业化效果最佳? 对于这个问题,我定义"好"是指易于实现和理解,效率合理,并且不太可...

18得票5回答
用于最快迭代的集合:set与unordered_set

在我的应用程序中,我有以下要求: 数据结构将仅填充一次某些值(不是键/值对)。 这些值可能会重复,但我希望数据结构仅存储它们一次。 我将通过上面创建的数据结构的所有元素进行数百次迭代。元素在迭代中出现的顺序并不重要。 约束1表明,我将使用set或unordered_set,因为数据不是...

17得票2回答
如何使用元素为pair<int,int>向量的无序集合(unordered_set)?

我想要的是像这样的东西 unordered_set&lt;vector&lt;pair&lt;int,int&gt;&gt;&gt; us; 但即使没有配对:#include &lt;vector&gt; #include &lt;unordered_set&gt; using namespa...

15得票4回答
如何创建一个由std::weak_ptr组成的C++11 std::unordered_set?

我有这样一个集合:set&lt;weak_ptr&lt;Node&gt;, owner_less&lt;weak_ptr&lt;Node&gt; &gt; &gt; setName; 它可以正常工作。但是我想将其改为无序集合,但这样做会导致大约六页的错误。有什么想法吗? 在查看了所有错误消息页...

15得票1回答
无序集合(或映射)的std::insert迭代器?

在std::中是否有适用于无序集的插入迭代器?据我所见,std::inserter需要一个迭代器参数。对于无序容器来说(至少对于boost::unordered_set),这是不安全的,因为它们可能会在insert操作期间重新分配内存,使传递的.begin()迭代器无效。 因此,我目前必须自...