auto_ptr与scoped_ptr的实现见本人的上篇博客。三、shared_ptrshared_ptr的实现原理是通过引用计数来实现,只有当引用计数为1时才释放空间,否则只需将引用计数减1.拷贝和赋值将引用计数加1,具体代码如下:template<typenameT>
classSharedPtr
{
public:
SharedPtr();
..
分类:
其他好文 时间:
2016-03-23 23:48:50
阅读次数:
210
1、传统的实现string类的方法优点:程序简单易懂缺点:1)在实现其拷贝构造和赋值的操作时多次的调用new动态的开辟空间,因此也需要多次的通过delete来释放空间。如果处理不当还容易造成内存泄漏。2)程序的一致性比较差#include<iostream>
#include<string>
using..
分类:
编程语言 时间:
2016-03-10 02:00:43
阅读次数:
261
关于内存耗尽的总结:1)在进程收到OOM之前,内核将刷新文件系统的cache来释放空间.2)将交换区的页面移到磁盘上.3)当内存变少时,虚拟性使每个进程通过交换区来做简单的上下文环境切换.4)当进程消耗尽交换内存后,才会引发out-of-memory(OOM)来kill那些进程.所以,我们还是有必要来..
分类:
系统相关 时间:
2016-02-18 20:01:45
阅读次数:
205
ORACLE 五种表的优缺点总结: 1。普通表(heap table):适合大部分设计场景,有长处也有缺点。 长处: a,语法简单方便 b,适合大部分场景 缺点: a,更新日志开销较大 b,Delete无法释放空间(HWM High Water Mark不下降) c,表记录太大检索太慢 d,索引回表
分类:
数据库 时间:
2016-02-03 18:18:04
阅读次数:
205
drop table *** purge;/删除表释放空间:如果后面不加purge则相当于只放到回收站。purge recyclebin; /清空回收站 获取当前日期(不含时间)select to_char(sysdate,'yyyy-mm-dd') AS F_FullDate FROM DUAL
分类:
数据库 时间:
2016-01-29 16:05:29
阅读次数:
255
SQLServer数据库如何收缩日志空间说明:SQLServer数据库日志会越来越大,尤其是服务器空间紧张时,你不得不收缩日志来放出部分空间,下面说方法。版本:SQLserver2008R2方法:新建查询,执行脚本。脚本如下注意红色部分需要修改成相应的数据库名.绿色部分需要修改成相应数据库日..
分类:
数据库 时间:
2016-01-27 19:52:23
阅读次数:
196
malloc/free和new/delete的区别和联系?它们都是动态管理内存的入口。malloc/free是C/C++标准库的函数,new/delete是C++操作符。malloc/free只是动态分配内存空间/释放空间。而new/delete除了分配空间还会调用构造函数和析构函数进行初始化与清理(清理成员)。malloc/free需要..
分类:
其他好文 时间:
2015-11-27 15:06:16
阅读次数:
142
一、类、对象在内存中的存储/* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造成内存泄露 全局区:所有的全局变量和静态变量 常量区:所有的常量 代码...
分类:
编程语言 时间:
2015-11-17 16:59:33
阅读次数:
222
linux里的文件被删除后,空间没有被释放是因为在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。解决方法:1、先df -lh查看一下磁盘使用状况2、...
分类:
系统相关 时间:
2015-11-09 07:09:42
阅读次数:
195
相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: TRUNCATE TABLE:删除内容、释放空间但不删除定义。 DELETE...
分类:
其他好文 时间:
2015-10-22 00:27:51
阅读次数:
191