我将指针存储在 std::unordered_set 中。我这样做是因为我不想要任何重复项(我删除集合中的指针,因此如果存在重复项,我将尝试删除已删除的指针)。我大量循环遍历这些集合,并且因为我知道 std::vector 是最快的循环容器(连续内存),所以我想知道 std::unordered_set 是否也这样做。
如果没有,使用 std::vector 并检查指针是否已被删除会更快吗?
Is std::unordered_set
连续的?
标准中没有详细说明容器的具体实现......however该标准确实规定了许多限制实际表示的行为。
例如,std::unordered_set
需要内存稳定:即使添加/删除元素的引用/地址也是有效的other元素。
实现这一目标的唯一方法是或多或少独立地分配元素。它无法通过连续的内存分配来实现,因为这样的分配必然是有界的,因此可能会过度增长,而无法在更大的块中重新分配元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)