终极原因:
C++ STL vector是一种动态数组,在存储空间不足时可以自动扩容。
C++ STL 中的 vector 扩容策略是以原来的1.5倍或者2倍扩容,这样的策略可以保证在平均情况下(经过大量测试),每次需要扩容的次数都是最少的,从而减少了整体的内存开销。
在扩容的同时,STL 中的 vector 还会重新分配内存,把原来的数据拷贝到新的内存空间中,为了避免内存浪费,将原来的内存空间释放。OK!
终极原因:
C++ STL vector是一种动态数组,在存储空间不足时可以自动扩容。
C++ STL 中的 vector 扩容策略是以原来的1.5倍或者2倍扩容,这样的策略可以保证在平均情况下(经过大量测试),每次需要扩容的次数都是最少的,从而减少了整体的内存开销。
在扩容的同时,STL 中的 vector 还会重新分配内存,把原来的数据拷贝到新的内存空间中,为了避免内存浪费,将原来的内存空间释放。OK!