标准库,智能指针,综合运用的小例子 功能说明:查询单词在文件中出现的次数,如果在同一行出现多次,只算一次。 比如查询单词:你好 输出的结果: 你好 出现了:2次 (行号 2)xxxxxxx 你好 (行号 3)bbb ccc 你好 xxxxx 注意点:代码的46行,必须使用引用。 代码: c++ in ...
分类:
编程语言 时间:
2018-09-30 11:25:51
阅读次数:
195
数组的智能指针 使用 数组的智能指针的限制: 1,unique_ptr的数组智能指针,没有 和 操作,但支持下标操作[] 2,shared_ptr的数组智能指针,有 和 操作,但不支持下标操作[],只能通过get()去访问数组的元素。 3,shared_ptr的数组智能指针,必须要自定义delete ...
分类:
编程语言 时间:
2018-09-29 21:35:07
阅读次数:
307
智能指针 unique_ptr 使用 和shared_ptr不同,可以有多个shared_ptr指向同一个内存,只能有1个unique_ptr指向某个内存。因此unique_ptr不支持普通的拷贝和赋值。 一,先来个表格,唠唠unique_ptr | 操作 | 功能描述 | | | | | uniq ...
分类:
编程语言 时间:
2018-09-28 10:58:51
阅读次数:
387
智能指针 shared_ptr 使用 上一篇 "智能指针是啥玩意" ,介绍了什么是智能指针。 这一篇简单说说如何使用智能指针。 一,智能指针分3类:今天只唠唠shared_ptr shared_ptr unique_ptr weak_ptr 二,下表是shared_ptr和unique_ptr都支持 ...
分类:
编程语言 时间:
2018-09-27 10:36:01
阅读次数:
235
返回的指针谁来负责释放呢?我们采取的措施是使用智能指针来管理这棵树的生命周期。 返回一棵子树的好处是在某些场合,我们能够将H、I、J、M重组,并将它们重新的加回原来的树中。 示例: main函数使用了p指针指向的内存,但是不负责释放,因为从main函数的角度来看,这片内存不是main函数申请的,而从 ...
分类:
其他好文 时间:
2018-09-23 11:29:03
阅读次数:
168
https://blog.csdn.net/gettogetto/article/details/66968307 http://blog.csdn.net/zy19940906/article/details/50470087 本次讨论:c++11之前的auto_ptr; c++11新加的uniq ...
分类:
其他好文 时间:
2018-09-20 13:11:23
阅读次数:
139
智能指针 在C++库中最重要的类模板之一 智能指针实际上是将指针封装在一个类里,通过对象来管理指针. STL中的智能指针auto_ptr 头文件: <memory> 生命周期结束时,自动摧毁指向的内存空间 不能指向堆数组(因为auto_ptr的析构函数删除指针用的是delete,而不是delete[ ...
分类:
编程语言 时间:
2018-09-19 14:43:23
阅读次数:
190
智能指针 在智能指针中shared_ptr用来计算指向对象的指针的个数,但是如果先执行shared_ptr1=shared_ptr2,再执行shared_ptr2=shared_ptr1,这样shared_ptr1.count()和shared_ptr2.count()都为1,这就造成了循环引用,循 ...
分类:
其他好文 时间:
2018-09-18 22:55:57
阅读次数:
216
1、智能指针的作用 C++程序设计设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理内存可以提高程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存 ...
分类:
其他好文 时间:
2018-09-16 23:01:00
阅读次数:
195
1、 智能指针重构 需求:使用智能指针 替换单链表 中的原生指针 将原生指针更改为智能指针后,解决全部的编译问题,程序还是会出错,问题在于: 的设计方案存在的一些特性 指针的生命周期结束时主动释放堆空间 一片堆空间最多只能有一个指针标识 不允许指针运算和指针比较 需求:创建新的指针指针 是智能指针的 ...
分类:
其他好文 时间:
2018-09-16 16:12:54
阅读次数:
169