码迷,mamicode.com
首页 > 编程语言 > 详细

C++ primer 第十二章笔记之 动态内存

时间:2017-05-13 22:16:20      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:就会   uniq   c++   ptr   blog   empty   vector   不为   关联   

动态内存:

运算符:new,delete

智能指针:

头文件:memory
shared_ptr:允许多个指针指向同一个对象;
unique_ptr:"独占"所指向的对象;
weak_ptr:一种弱引用,指向shared_ptr所管理的对象;

shared_ptr类

智能指针也是模板,创建指针时,提供指针指向的类型;

//创建:
shared_ptr<string> p1;
//若p1不为空,检测它是否指向一个空string
if( p1 &&p1->empty() )
    *p1 = "cjz";

make_shared 函数

shared_ptr<int> p3 = make_shared<int>(24);
shared_ptr<string> p4 = make_shared<string>(10,‘9‘);
shared_ptr<int> p5 = make_shared<int>();
//使用auto:p6指向一个动态分配的空vector<string>
auto p6 = make_shared<vector<string>>();

引用计数:一旦一个shared_ptr的计数器变为0,它就会自动释放自己所管理的对象;

shared_ptr自动销毁所管理的对象,通过 析构函数 完成;

shared_ptr还会自动释放相关联的内存;

对于一块内存,只要有任何shared_ptr对象引用它,它就不会被释放掉;

使用动态内存的一个常规原因是允许多个对象共享相同的状态;

 

C++ primer 第十二章笔记之 动态内存

标签:就会   uniq   c++   ptr   blog   empty   vector   不为   关联   

原文地址:http://www.cnblogs.com/chenjz1993/p/6850375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!