STL中的vector如何处理才可以避免内存碎片
2017-08-17 16:19
351 查看
答:
使用vector内的reserve函数。
reserve函数主要是为提升vector的效率而存在的,如果已知vector的大小,可以在初始化时为vector执行reserve操作,分配足够的内存空间,之后数据加入vector就不会造成内存再次分配,也可以减少内存碎片。另外reserve操作只分配内存空间,并不执行元素初始化,因此效率上要比resize要高,假如vector中存储的是复杂的对象,执行这些元素的初始化将是一笔不小的开销。
使用vector内的reserve函数。
reserve函数主要是为提升vector的效率而存在的,如果已知vector的大小,可以在初始化时为vector执行reserve操作,分配足够的内存空间,之后数据加入vector就不会造成内存再次分配,也可以减少内存碎片。另外reserve操作只分配内存空间,并不执行元素初始化,因此效率上要比resize要高,假如vector中存储的是复杂的对象,执行这些元素的初始化将是一笔不小的开销。
相关文章推荐
- list与vector容器如何处理才能避免内存增长?
- PHP CURL如何处理上传内存中文件,避免磁盘IO开销
- STL:如何释放vector占用的内存
- Linux是如何避免内存碎片的
- 如何分配内存 内存碎片处理技术
- Linux是如何避免内存碎片的
- 如何分配内存 内存碎片处理技术
- 如何分配内存 内存碎片处理技术
- 如何在.net应用中发现和避免内存和资源泄露
- STL中vector的内存分配与正确释放
- 报ORA-4031错误时,我们通常可以根据Oracle无法分配多少字节的内存,来判断共享池碎片的严重程度,以下是4031错误官方的解释
- TCMalloc分析 - 如何减少内存碎片
- memcpy memmove区别和实现(如何处理内存重叠问题)
- symbian的应用程序中,如何处理申请内存失败的异常的一些讨论
- vector对象在内存空间中是如何增长的
- STL容器vector的内存问题
- stl容器区别(内存布局和使用场合): vector list deque set map
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- [zz]如何使用istream_iterator将cin转到vector? (C/C++) (STL)
- C++ STL中用vector 改进内存的再分配