首页 > 代码库 > C++ primer 第十二章笔记之 动态内存
C++ primer 第十二章笔记之 动态内存
动态内存:
运算符: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 第十二章笔记之 动态内存
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。