具有固定增长的 STL 容器

STL containers with fixed growth

本文关键字:STL 容器      更新时间:2023-10-16

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

如果不可能,是否有我可以使用的提升容器?

std::list不会呈指数级增长,它是一个双重链表。

std::vector不能按恒定数量的元素增长,因为标准要求的操作很复杂。例如,push_back的复杂性应具有O(1)摊销时间复杂度。随着尺寸的恒定增长,复杂性将O(n)

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