14得票2回答
比较两个无序集合是否相等的代价有多大?

对于两个std::set,可以简单地同时迭代这两个集合并比较元素,使复杂度为线性。但是对于std::unordered_set,由于元素可能以任意顺序存储,因此这种方法不适用。那么std::unordered_set的a == b操作有多昂贵呢?

13得票1回答
在std::unordered_set中使用std::string_view和std::string

假设你有一个 std::unordered_set<std::string>。 你有一个 std::string_view 对象想要在容器中搜索。问题是,你不想从你的 std::string_view 创建一个 std::string,因为这会有点违背使用 std::string...

12得票2回答
为什么不能将pair用作unordered_set / unordered_map的键?

无论是 std::set<> 还是 std::map<> 都可以使用 std::pair 作为键,但为什么 std::unordered_set<> 和 std::unordered_map<> 不行呢? 例如:unordered_set&lt...

12得票2回答
unordered_set<int> 的查找方法的时间复杂度是多少?

find方法在unordered_set&lt;int&gt;中的时间复杂度是什么? 同时,是否可以更改哈希函数?

12得票2回答
unordered_set可以使用不同的分配器为节点和桶列表分别分配内存吗?

我想使用带有std::pmr::monotonic_buffer_resource的std::pmr::unordered_map。这两者很搭配,因为该集合的节点是稳定的,所以不需要通过重新分配来创建大量的缓冲区空洞: std::pmr::monotonic_buffer_resource...

11得票3回答
如何为类内定义的枚举类型重载std::hash?

我在一个类中定义了一个枚举类型,我想创建一个unordered_set作为该类的成员来存储这些对象: #include &lt;unordered_set&gt; class Foo { public: enum Bar { SOME_VALUE }; // Erro...

11得票3回答
C++如何将一个值存储在无序对中

我希望为一对无序整数存储浮点数值。我找不到易于理解的教程。例如,对于无序对{i,j},我想要存储一个浮点数值f。如何插入、存储和检索这样的值?

11得票2回答
用于确定unordered_set是否包含键的替代方法

假设我有一个 unordered_set S,并且我想检查它是否包含某个 int x。 是否有一种方法可以编写类似于 if(S.contains(x)){/*code*/} 的东西,它的作用类似于 if(S.find(x)!=S.end()){ /*code*/ }? 它可以是宏或任何东西...

10得票2回答
STL无序容器的本地迭代器有哪些用途?

在C++标准库的《§23.2.7 无序关联容器[unord.req]》中,表91描述了STL无序关联容器必须满足的额外要求。在该表中,标准规定STL无序容器(即unordered_set、unordered_map、unordered_multiset和unordered_multimap)必...

10得票5回答
非const的unordered_set迭代器

为了测试目的,我创建了一个小的无序集合并尝试对其进行迭代。该集合持有一个自己的类:class Student { private: int matrNr; string name; public: Student( const int&amp; matrNr = 0, ...