假设那个sizeof(void*) == sizeof(size_t)
和那个散列指针只是将它转换为size_t
. 所以我想知道我的集合是否包含一个元素,哪个会更快std::set<void*>
或std::unordered_set<void*>
?
我知道如何std::set
工作,但我不熟悉std::unordered_set
. 好吧,我知道无序集使用散列和桶,如果没有发生交集(这是我的情况),复杂性是O(1)。但我不知道这种恒定的复杂性有多少。
如果容器中有多少日期是相关的,我的实际场景使用不到一百个¹。但我的好奇心涉及元素很少和元素很多的两种情况。
¹ 元素的数量是如此之少,以至于即使 astd::vector
也会表现良好。