【Example】C++ Vector 内存预分配的良好习惯

为什么要对 Vector 进行内存预分配?

1,Vector 本身是一个内存只会增长不会减小的容器。

2,Vector 存在 size 和 capacity 两种计数,size 即元素个数,capacity 则是容量即 vector 在内存当中的大小,理论上始终 capacity >= size。

3,Vector 的 push_back 函数逻辑是,当 capacity 不够的时候,去申请一块新内存,将原有数据拷贝到新内存再释放旧内存,中间有一个申请、拷贝、释放的操作。

4,最根本目的是加强 Vector 写入时的性能。

什么样的 Vector 需要进行内存预分配?

存储的对象内存消耗大且数量多的Vector。

如果一个Vector就存了几百条int,则没必要去折腾。

=================================

由此可见,进行了预分配内存操作的 Vector 存入时间缩短了 65%。

Original: https://www.cnblogs.com/airchip/p/15679262.html
Author: 芯片烤电池
Title: 【Example】C++ Vector 内存预分配的良好习惯

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606296/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球