问题标签 [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.
c++ - 使用自定义散列函数插入 unordered_set
我有以下代码来制作unordered_set<Interval>
. 这编译得很好。
但是,当我尝试使用此代码插入时,我无法编译:
此外,我无法从错误消息中确定问题所在,例如:
我以为我只提供了 1 个论点...
我的插入代码有什么问题?
这是新的实例化代码:unordered_set<Interval, Hash> test;
但是,我仍然收到大量错误消息,例如:
c++ - 在 unordered_set 中重载 == 运算符
我正在尝试创建一个unordered_set
如下Intervals
定义的:
在这里,我==
在我的头文件中声明运算符并在我的 .cpp 文件中定义它(就像我成功为其他运算符所做的那样)。当我编译上面的代码时,我得到关于==
只需要一个参数的运算符的错误。例如,'bool IntervalEquality::operator==(const Interval&, const Interval&)' must take exactly one argument
如果我尝试采用替代路线并在我的头文件中声明和定义,如下所示:==
我收到关于多个定义的错误==
有谁知道我该如何解决这个问题?非常感谢帮助!
c++ - std::vector 比 std::unordered_set 快吗?
在我的自定义物理引擎中,最大的瓶颈是从空间分区(2D 网格)中获取所有物体的方法,并返回一个只包含指向 body 的唯一指针的集合。
使用分析器表明瓶颈在于“包含”方法。
显然, anstd::unordered_set
将是这里的“理想”解决方案。但是,它比当前的解决方案慢很多。我也试过google::dense_hash_set
,它比 快std::unordered_set
,但仍然比当前的解决方案慢。
为什么“正确”的容器比 a 慢std::vector
?
有什么办法可以进一步加快这种方法的速度吗?
c++ - 带有向量迭代器的程序中的分段错误
有人能告诉我为什么它在 Visual Studio 中编译和运行良好,但在编译 GNU C++ 编译器时因分段错误而失败
不能为我的生活弄清楚这一点。我检查了前缀/后缀运算符,并确保将迭代器正确放置在条件语句中......我错过了什么?通常我在处理分配/解除分配动态数组时遇到这个问题,我在这里没有这样做。
c++ - 关于 boost bimap 中 unordered_multiset_of 的问题
我正在实现一个boost::bimap
并且我正在考虑使用unordered_multiset_of
但unordered_multiset_of
需要将一个哈希函数和相等运算符传递给它。而且我做错了。
似乎我的哈希函数和 equal_to 函数给出了错误。我如何解决它?我相信std::equal_to()
会自动调用我定义的 == 运算符MyClass
,对吧?
c++ - 序列化 boost::unordered_set 时编译错误
首先, boost::serialization 现在支持 unordered_set 吗?我没有找到标题 boost/serialization/unordered_set.hpp。
这是我尝试实现的代码:
这是错误:
另外,我仍然收到以下代码的警告:
我不确定是否可以忽略它。
c++ - C++ 11:使用 unordered_set::push 将 const int* 转换为 int*
我有这个使用 c++11 标准的代码转换的问题:
有谁知道这是为什么?我可以解决删除“push”参数中的“const”修饰符的问题。但我不想要它,因为参数“b”没有被修改。
编辑:我对代码的简化产生了一个未引用的地址。我已经制作了一个 struct B 删除它。
c++ - 填充 unordered_set 太慢了
我们有一个给定的 3D 网格,我们正在尝试消除相同的顶点。为此,我们使用了一个包含顶点坐标和相应法线的自定义结构。
用数据填充顶点后,将其添加到 unordered_set 以删除重复项。
我们发现它对于像 3.000.000 个顶点这样的数据量来说太慢了。即使运行了 15 分钟,程序也没有完成。是否存在我们看不到的瓶颈,或者是否有其他数据结构更适合此类任务?
c++ - 带有指向持有 unordered_set 的对象的指针的分段错误
我究竟做错了什么?
c++ - 使用 std::unique_ptr 的 std::unordered_set
假设我有一组 unique_ptr:
我不确定检查集合中是否存在给定指针的安全方法是什么。正常的方法可能是调用my_set.find ()
,但我应该将什么作为参数传递?
我从外面得到的只是一个原始指针。find()
所以我必须从指针创建另一个 unique_ptr ,然后将其传递给release()
该指针,否则对象将被破坏(两次)。当然,这个过程可以在一个函数中完成,所以调用者可以传递原始指针,我来做转换。
这种方法安全吗?有没有更好的方法来处理一组 unique_ptr?