版权声明:本文为博主原创文章,未经博主允许不得转载。 shared_ptr智能指针的一种,它的使用类似于auto_ptr. shared_ptr它有两个指针,一个指向引用计数,一个指向data.由于拥有引用计数,所有shared_ptr支持容器. shared_ptr的源码非常复杂这里也不做太多讲解 ...
分类:
其他好文 时间:
2017-07-28 00:23:10
阅读次数:
178
1. 从auto_ptr说起 先来一段简单的代码,看看auto_ptr的使用: 哦,被你发现了;auto_ptr的初衷是用来实现智能指针的,实现内存的自动回收。比如,代码中我new了一个A对象,但是却没有对应的delete A对象。嗯,这得解决多少麻烦事啊,真的是好东西,而且还这么好用。好用???如 ...
分类:
编程语言 时间:
2017-07-24 21:19:02
阅读次数:
270
stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针的使用总结 (1)auto_ptr 主要用于解决资源自动释放的问题。防止用户忘记delete掉new申请的内存空间。使用auto_ptr会在离开变量的作用域之后直接调用析构函数进行资源释放。 但是,这是 ...
分类:
其他好文 时间:
2017-07-22 16:50:12
阅读次数:
713
C++堆内存管理 auto_ptr的缺陷 在很早的C++98之前,C++用"auto_ptr"智能指针来管理堆分配的内存,它的使用非常简单: auto_ptr ap(new int(1024)); 即将new操作返回的指针作为auto_ptr的初始值,不用调用delete即可实现堆内存的自动释放(如... ...
分类:
编程语言 时间:
2017-07-12 15:20:31
阅读次数:
313
智能指针是什么,他的真面目就是一个类生成的对象,这个类中包含了基本的重载->、*等一些指针形态的用法,最主要的是这个类里面有一个指针参数:所有智能指针类中都有一个explicit构造函数,以指针作为参数。比如auto_ptr的类模板原型为: template<class T> class auto_ ...
分类:
其他好文 时间:
2017-07-08 20:19:18
阅读次数:
158
ITERATOR template<class InputIterator,class T> InputIterator find(InputIterator first,InputIterator last,const T& value) { while(first != last && *fir ...
分类:
编程语言 时间:
2017-06-09 12:39:48
阅读次数:
157
auto_ptr是C++标准库提供的类模板,头文件<memory>,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同一时候被分给两个拥有者。当auto_ptr对象生命周期结束时,其析构函数会将auto_ptr对象拥有的动态内存自己主动释放。即使发生异常, ...
分类:
编程语言 时间:
2017-06-03 14:04:46
阅读次数:
228
1、容器元素类型 C++中大多数数据类型能够作为容器的元素类型。容器元素类型必须满足一下两个条件:支持赋值和复制操作。 所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的元素类型。 2、vector容器的自增长 vector容器中存储的元素在内存中是连续存储的。假如容器 ...
分类:
编程语言 时间:
2017-04-20 23:16:09
阅读次数:
199
智能指针的行为像是指针,但是没有提供加的功能。例如,Item 13中解释了如何使用标准auto_ptr和tr1::shared_ptr指针在正确的时间自动删除堆上的资源。STL容器中的迭代器基本上都是智能指针:当然,你不能通过使用“++”来将链表中的指向一个节点的内建指针移到下一个节点上去,但是li ...
分类:
编程语言 时间:
2017-04-10 09:37:47
阅读次数:
270
题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,S ...
分类:
其他好文 时间:
2017-04-08 21:27:19
阅读次数:
251