Vector如何释放内存呢?
来源:互联网 发布:文字作图软件 编辑:程序博客网 时间:2024/06/05 05:21
vector.clear()只是将所分配的空间size置零,以便新来的元素覆盖旧元素,那么如何真正释放内存地址呢?
可以采用如下办法:
vector().swap(v); //此处v为vector变量,申明一个capacity为0的临时变量(无名),然后交换空间,当临时变量出了作用域后内存就自动释放了。PS:当v中存储的为对象时,当释放的时候会自动调用析构函数释放内存,但当v指向一片内存指针的时候就需要遍历整个vector,手动释放指针指向的内存空间。比如调用free(p)或p内也有指向其它内存空间的指针时,最好在p内定义一个destroy函数,然后p->destroy();,这样就把内存释放的干干净净了^_^
int _tmain(int argc, _TCHAR* argv[]){ vector <int> v; for(int i=0; i<1000; i++) v.push_back(i); printf("Vector 的 容量为%d",v.capacity()); getchar(); // 此时检查内存情况 占用1066 v.clear(); // 此时再次检查, 仍然占用1066 printf("Vector 的 容量为%d",v.capacity()); getchar(); vector<int>().swap(v); // 此时容量为 0 printf("Vector 的 容量为%d",v.capacity()); getchar(); return 0;}
0 0
- Vector如何释放内存呢?
- c++ vector 如何释放内存
- STL:如何释放vector占用的内存
- 如何正确释放Vector的内存
- C++ 如何快速清空vector以及释放vector内存?
- Vector的内存释放
- vector内存释放机制
- vector的内存释放
- c++ vector 释放内存
- vector的内存释放
- c++ vector 内存释放
- vector 释放内存 swap
- vector的内存释放
- vector内存释放机制
- vector的内存释放
- 正确释放Vector内存
- c++ vector 释放内存
- vector内存释放
- 一个LINUX狂人的语录
- JSP技术基础
- maven创建多模块项目+springMVC+mybatis
- 2015061808 - 代码审查的必要性
- 可变参数的add函数的实现: int add(int argc, ...){}
- Vector如何释放内存呢?
- 再开一篇关于C++程序设计基核心之一:引用,指针,符号优先级,函数参数传递
- 虚拟机
- 2015061809 - 警醒
- JS - 关于改变Javascript的作用域链
- 关于C++程序设计的基础核心之二:继承与派生的基本知识
- Linux网络编程入门 (转载)
- 内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)
- 关于cmd命令行关闭电脑