扩容机制
首先在VS2013底下,vector的扩容操作是每次扩容*1.5;在GCC环境下是2倍。
-
GCC下的扩容方式是以二倍形式扩容。
-
VS2013下是以1.5倍进行扩容
所以可能会有疑问: - 问题一:为什么非要以倍数的形式增长,而不是以个数的形式增长。
- 问题二:为什么每次增长是1.5倍或者2倍形式,而不是3倍或者4倍形式增长。
详解问题一
倍数方式空间拷贝数据次数
假设总共有n个元素,以m倍的形式增长。(比如现在举例n=100, m=2),所以,vector的push_back的操作次数可以是logmN,
版权声明:本文为weixin_43796685原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。