从零开始写STL 智能指针 智能指针的分类及其特点: scoped_ptr:初始化获得资源控制权,在作用域结束释放资源 shared_ptr: 引用计数来控制共享资源,最后一个资源的引用被释放的时候会析构 unique_ptr: 只能有一个持有资源引用的对象 weak_ptr:eak_ptr也维护了 ...
分类:
其他好文 时间:
2018-03-29 19:11:57
阅读次数:
171
动态内存与智能指针 【智能指针】头文件#include<memory>shared_ptr: 允许多个指针指向同一个对象unique_ptr: "独占"所指向的对象weak_ptr:伴随类,它是一种弱引用,指向shared_ptr所管理的对象。 ...
分类:
其他好文 时间:
2018-03-13 01:12:07
阅读次数:
170
auto_ptr: unique_ptr: shared_ptr和weak_ptr: ...
分类:
其他好文 时间:
2018-03-04 18:09:20
阅读次数:
134
已经不用的内存,但没有释放,造成内存泄漏。内存已经释放,但是指向它的指针没有置空或销毁,造成空悬指针。 智能指针:指针变量销毁,它所指向的内存会自动释放。 unique_ptr是一种定义在<memory>中的智能指针(smart pointer)。它持有对对象的独有权——两个unique_ptr不能 ...
分类:
其他好文 时间:
2018-02-25 17:26:03
阅读次数:
147
只允许基础指针的一个所有者。 可以移到新所有者(具有移动语义),但不会复制或共享(即我们无法得到指向同一个对象的两个unique_ptr)。 替换已弃用的 auto_ptr。 相较于 boost::scoped_ptr。 unique_ptr 小巧高效;大小等同于一个指针,支持 rvalue 引用, ...
分类:
其他好文 时间:
2018-02-25 14:42:25
阅读次数:
232
C++没有内存回收机制,每次程序员new出来的对象需要手动delete,流程复杂时可能会漏掉delete,导致内存泄漏。于是C++引入智能指针,可用于动态资源管理,资源即对象的管理策略。 一、智能指针类别 智能指针主要有三种:shared_ptr,unique_ptr和weak_ptr。 share ...
分类:
其他好文 时间:
2018-02-25 12:58:35
阅读次数:
235
在对象拷贝后就立即被销毁的情况下,移动而非拷贝对象会大幅度提升性能。以及像 IO 类或 unique_ptr 这样的类,包含不能被共享的资源,不能拷贝但可以移动。而标准库容器、string 和 shared_ptr 类既支持移动也支持拷贝 右值引用: 右值引用是 c++11 为了支持移动操作引入的。 ...
分类:
移动开发 时间:
2018-02-11 23:37:40
阅读次数:
212
6.10 智能指针C++11 提供智能指针的数据类型,对垃圾回收技术提供了一些支持,实现一定程度的内存管理 unique_ptr:不允许多个指针共享资源,可以用标准库中的move函数转移指针shared_ptr:多个指针共享资源weak_ptr:可复制shared_ptr,但其构造或者释放对资源不产 ...
分类:
编程语言 时间:
2017-12-13 23:24:14
阅读次数:
179
今天看了一下智能指针的东西,发现更简单的思路: 就是Block和solver构造时,需要传递unique_ptr,那我们将普通指针转换成unique_ptr不就可以了么: // 初始化g2o //第一步: typedef g2o::BlockSolver< g2o::BlockSolverTrait ...
分类:
其他好文 时间:
2017-11-10 18:46:33
阅读次数:
234