Vit*_*meo 6 c++ performance vector unordered-set c++11
我在std :: unordered_set中存储指针,因为我不想要任何重复(我删除了集合中的指针,所以如果有重复,我会尝试删除已经删除的指针).我在这些集合中循环很多,因为我知道std :: vector是最快的循环容器(连续内存),我想知道std :: unordered_set是否也是这样做的.
如果没有,会使用std :: vector并检查指针是否被删除更快?
Mat*_* M. 18
是
std::unordered_set连续的吗?
标准没有详细说明容器的确切实现...... 但是标准确实规定了许多限制实际表示的行为.
例如,std::unordered_set需要内存稳定:即使添加/删除其他元素,对元素的/地址的引用也是有效的.
实现这一目标的唯一方法是或多或少地独立分配元素.它不能通过连续的存储器分配来实现,因为这样的分配必然是有界的,因此可能过度生长而不可能在更大的块中重新分配元素.