释放vector内存的两种方法
来源:互联网 发布:法国帅哥知乎 编辑:程序博客网 时间:2024/05/17 22:12
经常听见有人说vector内存是不可以释放的。实际上这是一种误解,
下面提供两种方法,各有千秋:
这是利用swap函数,和临时对象交换,使S对象的内存为临时对象的内存一样,而临时
对象的内存为S对象的内存。交换以后,临时对象消失,释放内存。不是传统所说的,程序退出才释放内存。
这可以调试跟踪一下。而且我们为了调整S的容纳3个元素,可以这样写:
我还记得这个论坛上有人问为什么要把swap写成成员函数,而不直接调用std::swap,其原因在于封装。
也就是假如需要交换的变量是有3个,那么std::swap要写成3次。
如:
而且,在类外面的swap是无法调用类的私有成员的。swap还具有一个非常重要的优点——不抛出异常。
另外一种释放的方法,就很少人用了:
- 释放vector内存的两种方法
- vector内存释放方法
- Vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- vector的内存释放
- 正确释放Vector的内存
- 正确释放Vector的内存
- 正确释放Vector的内存
- 关于vector的内存释放
- Java正则表达式详解
- 在创新中崛起
- SELECT 语句的默认事务锁定行为 SET TRANSACTION ISOLATION LEVEL
- DLL(动态连接库)创建和使用
- (转)LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- 释放vector内存的两种方法
- 让虚拟机实现开机自动后台运行
- LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化
- SQL Server 2000数据库 [置疑] 的解决方法
- java的原子操作和volatile
- 基础代码汇总整理 for NOIP 2009 修订版(下)
- flex外部自定义组件TitleWindow对话框与主程序之间的通信
- 大型网站架构演变和知识体系
- Flex TypeError: Error #1034: 类型转换失败