首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中STL载体的生长因子是常数还是自适应的?

C++中STL载体的生长因子是常数还是自适应的?
EN

Stack Overflow用户
提问于 2021-03-15 23:46:48
回答 2查看 83关注 0票数 1

该标准是否规定了std::vector的增长向量是否必须是恒定的,或者它是否可以自适应?

在我的linux和mac机器上,我相信它总是恒定的(根据经验观察--但我没有检查过它是否保持在非常大的大小)。是后者的2倍,我想不起来是前者。

EN

回答 2

Stack Overflow用户

发布于 2021-03-15 23:50:42

该标准要求向量具有amortized constant growth。只要保持这一点,实现就可以做它想做的任何事情。

我见过的所有实现都使用了一个恒定的增长因子,但这并不意味着它必须是这样的,只要保持不变量。

票数 5
EN

Stack Overflow用户

发布于 2021-03-15 23:56:32

该标准规定std::vector的增长必须是O(1)+。

加倍是一种常见的策略。

一些学术研究表明,按黄金比例增长可能更好。如果它是可配置的,那就好了,但没有人说服C++标准委员会这样做的好处。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66641236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档