我有一个对象“列表”,我想从中随机选择一个对象并将其推到该列表的前面。只执行这种操作。因此,我不需要快速访问列表末尾,只需访问它的前面和任何其他位置的平均访问。
哪种容器最适合这种情况?我考虑过std :: vector,但我读到insert操作效率不高。然后我想到了std :: deque,因为它可以快速访问前面,但是它的erase特定位置方法的效率如何?
提前感谢您的帮助。
哪种容器最适合这种情况?我考虑过std :: vector,但我读到insert操作效率不高。然后我想到了std :: deque,因为它可以快速访问前面,但是它的erase特定位置方法的效率如何?
提前感谢您的帮助。
erase
仍然是O(n)
,但要移动的数据量更小。 - Steve Jessopvector
,那么将其推到后面并使用反向迭代器。将其推到前面是愚蠢的。 - Pubby交换
?后者更为高效。 - user1773602