问题标签 [unordered-set]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
42638 浏览

c++ - 使用自定义散列函数插入 unordered_set

我有以下代码来制作unordered_set<Interval>. 这编译得很好。

但是,当我尝试使用此代码插入时,我无法编译:

此外,我无法从错误消息中确定问题所在,例如:

我以为我只提供了 1 个论点...

我的插入代码有什么问题?


这是新的实例化代码:unordered_set<Interval, Hash> test; 但是,我仍然收到大量错误消息,例如:

0 投票
2 回答
2843 浏览

c++ - 在 unordered_set 中重载 == 运算符

我正在尝试创建一个unordered_set如下Intervals定义的:

在这里,我==在我的头文件中声明运算符并在我的 .cpp 文件中定义它(就像我成功为其他运算符所做的那样)。当我编译上面的代码时,我得到关于==只需要一个参数的运算符的错误。例如,'bool IntervalEquality::operator==(const Interval&, const Interval&)' must take exactly one argument

如果我尝试采用替代路线并在我的头文件中声明定义,如下所示:==

我收到关于多个定义的错误==

有谁知道我该如何解决这个问题?非常感谢帮助!

0 投票
5 回答
10971 浏览

c++ - std::vector 比 std::unordered_set 快吗?

在我的自定义物理引擎中,最大的瓶颈是从空间分区(2D 网格)中获取所有物体的方法,并返回一个只包含指向 body 的唯一指针的集合。

使用分析器表明瓶颈在于“包含”方法。

显然, anstd::unordered_set将是这里的“理想”解决方案。但是,它比当前的解决方案慢很多。我也试过google::dense_hash_set,它比 快std::unordered_set,但仍然比当前的解决方案慢。

为什么“正确”的容器比 a 慢std::vector

有什么办法可以进一步加快这种方法的速度吗?

0 投票
1 回答
732 浏览

c++ - 带有向量迭代器的程序中的分段错误

有人能告诉我为什么它在 Visual Studio 中编译和运行良好,但在编译 GNU C++ 编译器时因分段错误而失败

不能为我的生活弄清楚这一点。我检查了前缀/后缀运算符,并确保将迭代器正确放置在条件语句中......我错过了什么?通常我在处理分配/解除分配动态数组时遇到这个问题,我在这里没有这样做。

0 投票
1 回答
441 浏览

c++ - 关于 boost bimap 中 unordered_multiset_of 的问题

我正在实现一个boost::bimap并且我正在考虑使用unordered_multiset_ofunordered_multiset_of需要将一个哈希函数和相等运算符传递给它。而且我做错了。

似乎我的哈希函数和 equal_to 函数给出了错误。我如何解决它?我相信std::equal_to()会自动调用我定义的 == 运算符MyClass,对吧?

0 投票
1 回答
1113 浏览

c++ - 序列化 boost::unordered_set 时编译错误

首先, boost::serialization 现在支持 unordered_set 吗?我没有找到标题 boost/serialization/unordered_set.hpp。

这是我尝试实现的代码:

这是错误:

另外,我仍然收到以下代码的警告:

我不确定是否可以忽略它。

0 投票
1 回答
236 浏览

c++ - C++ 11:使用 unordered_set::push 将 const int* 转换为 int*

我有这个使用 c++11 标准的代码转换的问题:

有谁知道这是为什么?我可以解决删除“push”参数中的“const”修饰符的问题。但我不想要它,因为参数“b”没有被修改。

编辑:我对代码的简化产生了一个未引用的地址。我已经制作了一个 struct B 删除它。

0 投票
3 回答
1901 浏览

c++ - 填充 unordered_set 太慢了

我们有一个给定的 3D 网格,我们正在尝试消除相同的顶点。为此,我们使用了一个包含顶点坐标和相应法线的自定义结构。

用数据填充顶点后,将其添加到 unordered_set 以删除重复项。

我们发现它对于像 3.000.000 个顶点这样的数据量来说太慢了。即使运行了 15 分钟,程序也没有完成。是否存在我们看不到的瓶颈,或者是否有其他数据结构更适合此类任务?

0 投票
1 回答
414 浏览

c++ - 带有指向持有 unordered_set 的对象的指针的分段错误

我究竟做错了什么?

0 投票
6 回答
8755 浏览

c++ - 使用 std::unique_ptr 的 std::unordered_set

假设我有一组 unique_ptr:

我不确定检查集合中是否存在给定指针的安全方法是什么。正常的方法可能是调用my_set.find (),但我应该将什么作为参数传递?

我从外面得到的只是一个原始指针。find()所以我必须从指针创建另一个 unique_ptr ,然后将其传递给release()该指针,否则对象将被破坏(两次)。当然,这个过程可以在一个函数中完成,所以调用者可以传递原始指针,我来做转换。

这种方法安全吗?有没有更好的方法来处理一组 unique_ptr?