2

在运行时方面,通过后端存储大量数据并从前端或后端移除最有效的容器是什么?

4

2 回答 2

13

Astd::deque或双端队列。

与 a 不同std::vector,它不能保证存储在连续的内存中。但是,您应该对您的特定需求进行基准测试,因为缓存变得越来越重要,而一般的复杂性陈述则越来越不重要;但是,在这种情况下, adeque是我要开始的地方。

于 2013-02-01T08:05:31.223 回答
0

这取决于实现、容器的大小、涉及的类型以及可能还有其他因素,因此唯一能给出的真正答案就是测量。 std::deque是为这些类型的操作而设计的,对于复制类型昂贵的非常大的容器,它无疑会是最快的,但是我测量过的一次(使用多达 8 个容器——char小而复制成本低),std::vector beat std: :deque` 放下手。

于 2013-02-01T08:57:55.233 回答