固定生长的STL容器

时间:2017-07-12 17:34:33

标签: c++ stl

我有一个用于容器的用例,它提供固定的增长模式而不是指数增长模式。在这个用例中,节省内存比运行时更重要 是否有办法让std::vectorstd::list自动增长N个元素,而不是在容器空间不足时以指数方式增长?
我知道我可以写一个这样做的适配器,但我首先要通过标准化方法找出它是否可行。

如果不可能,我可以使用增压容器吗?

1 个答案:

答案 0 :(得分:4)

std::list没有成倍增长,它是一个doubly linked list

std::vector不能通过恒定数量的元素增长,因为标准要求的操作复杂。例如,push_back的复杂性应该具有O(1)摊销的时间复杂度。随着大小的不断增长,它将是O(n)复杂度。

如果您需要一个与std::vector非常相似并且没有指数增长因子的容器,请查看std::deque