什么是最有效的从后面插入并从前面和后面移除的容器?

时间:2013-02-01 08:04:08

标签: c++

就运行时而言,通过背面存储大量数据并从正面或背面移除的最有效容器是什么?

2 个答案:

答案 0 :(得分:13)

std::deque或双头队列。

std::vector不同,不保证存储在连续的内存中。您应该对您的特定需求进行基准测试,因为缓存变得越来越重要,而且一般复杂性语句也越来越少;但是,在这种情况下,我会从deque开始。

答案 1 :(得分:0)

这取决于实现,容器的大小, 涉及的类型,也可能是其他的东西,所以唯一的 真正的答案可以给予衡量。 std::deque是 专为这些类型的操作而设计,非常大 容易复制类型的容器,无疑是 最快的,但有一次我测量(用一个容器起来 到8 char - 小而便宜复制),std::vector beat std :: deque`放下。