标签:就会 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对象引用它,它就不会被释放掉;
使用动态内存的一个常规原因是允许多个对象共享相同的状态;
标签:就会 uniq c++ ptr blog empty vector 不为 关联
原文地址:http://www.cnblogs.com/chenjz1993/p/6850375.html