D5.20
模板
写一个类模板,实现链表操作;(初始化、插入(头插、尾部插入、中间插入(指定插入的位置))、删除、遍历、获取链表节点、逆序)
D5.20
手动初始化和使用make_shared函数模板初始化有什么区别?
推荐使用make_shared进行初始化;开销小,效率高
//shared_ptr提供的成员函数;
//use_count():当前有多少个指针指向当前对象或者空间;
//unique():判断当前指针是否独享(只有它自己指向该对象)该对象或者空间;
//reset():判断当前指针是否独享该对象,如果独享就释放该对象的空间,否则,将该指针置为nullptr,并将引用计数减1;
//reset(参数):若该指针独享该对象,则释放该对象,并使该指针指向形参所对应的空间;
//get():获取当前智能指针指向的裸指针;主要是为了适应C的接口
指定删除器:当默认的删除器不起作用时,需要自己指定删除器
//weak_ptr:类模板,弱指针(弱引用技术)
特点:弱指针不能影响对象的生命周期,对象释放时,并关心有多少个弱指针指向该对象;
初始化:辅助shared_ptr,可以使弱指针指向一个共享指针(共享指针赋值给弱指针),但是不能让把弱指针赋值给共享指针;
弱指针不能指向一个新的空间;
//weak_ptr常用功能
//lock():获取弱指针指向的对象所对应的共享指针,如果指向的对象释放,那么返回一个nullptr;(将弱指针转换为共享指针);
//reset():弱引用计数减1;