当前位置: 首页 > wzjs >正文

社群营销成功案例windows优化大师怎么彻底删除

社群营销成功案例,windows优化大师怎么彻底删除,网上免费发布信息平台,公司建站服务一、进阶 1、智能指针相互间赋值 1.1 unique_ptr 之间的赋值 左值不能直接赋值&#xff1a;unique_ptr 表示独占所有权&#xff0c;禁止普通左值之间的赋值&#xff0c;避免多个指针指向同一对象。 unique_ptr<int> a make_unique<int>(5); unique_ptr<i…

一、进阶

1、智能指针相互间赋值

1.1 unique_ptr 之间的赋值

左值不能直接赋值unique_ptr 表示独占所有权,禁止普通左值之间的赋值,避免多个指针指向同一对象。

unique_ptr<int> a = make_unique<int>(5);  
unique_ptr<int> b;  
b = a; // 编译错误,a 是左值,直接赋值违反独占原则  

右值可通过移动赋值:若为右值(如临时对象或通过 std::move 转换),则可移动赋值。此时原 unique_ptr 失去所有权(变为 nullptr) 

unique_ptr<int> a = make_unique<int>(5);  
unique_ptr<int> b = std::move(a); // 合法,a 变为 nullptr,b 接管对象 
1.2 unique_ptrshared_ptr 的赋值 

unique_ptr 右值可赋值给 shared_ptrshared_ptr 有显式构造函数,可接收 unique_ptr 右值(如临时对象或 std::move 转换后的对象)。此时 shared_ptr 接管对象所有权:

unique_ptr<int> uptr = make_unique<int>(10);  
shared_ptr<int> sptr1 = std::move(uptr); // 合法,uptr 变为 nullptr  shared_ptr<int> sptr2(make_unique<int>(20)); // 合法,临时 unique_ptr 作为右值  
shared_ptr<int> sptr3 = make_unique<int>(42); // 隐式移动构造。在构造shared_ptr时传入unique_ptr的右值(如函数返回值),编译器会自动完成移动操作

unique_ptr 左值不可直接赋值给 shared_ptr:若直接用 unique_ptr 左值初始化 shared_ptr,会编译错误 

unique_ptr<int> uptr = make_unique<int>(10);  
shared_ptr<int> sptr3(uptr); // 编译错误,uptr 是左值  
1.3 总结
  • 允许转换的方向unique_ptr → shared_ptr(通过移动语义)。
  • 禁止转换的方向shared_ptr → unique_ptr
  • unique_ptr 之间仅允许右值移动赋值;unique_ptr 可通过右值(如 std::move 或临时对象)赋值给 shared_ptr,但左值不行。 

2、  shared_ptr<int*>有什么问题?

// 正确用法:shared_ptr<int> 管理 int 对象  
shared_ptr<int> sp1 = make_shared<int>(10); // 直接管理 int 值 10  // 非常规用法:shared_ptr<int*> 管理 int* 指针
// 管理 int*,需确保 int* 指向的内存正确释放(此处虽合法但不推荐)    
shared_ptr<int*> sp2 = make_shared<int*>(new int(20)); 

shared_ptr<int>:直接管理一个 int 类型的对象,智能指针内部存储的是 int 对象的指针(如 int*),并负责该 int 对象的内存释放。符合智能指针的设计初衷,直接管理对象内存。

shared_ptr<int*>:管理一个 int* 类型的指针(即指针本身成为智能指针管理的对象)。这种用法违背了智能指针简化对象管理的原则,因为 int* 指向的对象仍需确保其生命周期正确(虽然此处 int* 由 new int 分配,delete 合法,但代码逻辑易混淆)。

std::shared_ptr<int*> sptr(new int*(new int(42)), [](int** p) { delete *p;  // 释放内层 int 对象delete p;    // 释放外层 int* 指针}
);

需在自定义删除器中显式释放内层内存。


使用 shared_ptr<T[]>(C++17 及以上)

int main() {// 创建 shared_ptr 管理动态数组(C++17 起支持)std::shared_ptr<int[]> arr(new int[5]{1, 2, 3, 4, 5});// 直接通过 operator[] 访问元素for (int i = 0; i < 5; ++i) {arr[i] = i * 10;        // 修改元素std::cout << arr[i] << " ";  // 输出:0 10 20 30 40}// 无需手动释放,shared_ptr 自动调用 delete[]return 0;
}

自定义删除器(兼容 C++11/14) 

int main() {// 定义删除器(Lambda 表达式)auto array_deleter = [](int* ptr) {delete[] ptr;  // 必须显式调用 delete[]std::cout << "动态数组内存已释放\n";};// 创建 shared_ptr 并传入删除器std::shared_ptr<int> arr(new int[5]{1, 2, 3, 4, 5}, array_deleter);// 通过 get() 获取原始指针访问元素int* raw_ptr = arr.get();for (int i = 0; i < 5; ++i) {raw_ptr[i] = i * 10;       // 修改元素std::cout << raw_ptr[i] << " ";  // 输出:0 10 20 30 40}// 析构时自动调用 array_deleterreturn 0;
}


文章转载自:

http://FS8fKWad.trpLf.cn
http://jk3NoHnY.trpLf.cn
http://ai2hYsvL.trpLf.cn
http://5Xesbcr8.trpLf.cn
http://WxtYtoy1.trpLf.cn
http://axO7vZD8.trpLf.cn
http://e87wBIhQ.trpLf.cn
http://wHveCLJ6.trpLf.cn
http://zZgOWBRR.trpLf.cn
http://KhBJxYNS.trpLf.cn
http://Cn3XKf9v.trpLf.cn
http://jYnO8aca.trpLf.cn
http://dzF1bx9p.trpLf.cn
http://jlqMFPkl.trpLf.cn
http://xsl84j9w.trpLf.cn
http://tkxZVeaN.trpLf.cn
http://fefbhg49.trpLf.cn
http://LKMfzVdT.trpLf.cn
http://ZvNnnzeN.trpLf.cn
http://9pwb0DFJ.trpLf.cn
http://tcryp1XW.trpLf.cn
http://tWaNNteV.trpLf.cn
http://qLrNm0rI.trpLf.cn
http://jLaaD4Y9.trpLf.cn
http://jmVXVZV2.trpLf.cn
http://do1e49Jv.trpLf.cn
http://ubRmrMmJ.trpLf.cn
http://PhHkEMZj.trpLf.cn
http://XjCgVd3R.trpLf.cn
http://p5BK9TQi.trpLf.cn
http://www.dtcms.com/wzjs/614410.html

相关文章:

  • 做特卖的网站怎么赚钱线上代运营
  • gofair做网站营销活动方案名称
  • 做网站可以用新建项目的方式吗沈阳注册公司
  • 中信建设证券有限责任公司太原百度快速优化排名
  • 刷题网站建设做网站容易还是做小程序容易
  • 个人网站的制作方法mm131爬虫wordpress
  • seo包括网站建设吗被执行人名单查询
  • 猪八戒网站开发漳州网站开发
  • 有网络网站打不开怎么回事如何使用手机看建设网站
  • 网站的模版可以换吗商城入口
  • 湖南网站营销推广电子商务公司最低注册资本
  • 免费空间大的云盘安卓优化大师app下载
  • 网站建设和程序开发哪个好湖北德升建站
  • 网站建设哪家好 北京微信用大型网站站做跳板
  • 建设电商网站的网站备案流程解答
  • 省建设厅网站6网站开发公司招聘技术人员
  • 成都网站推广营销微信电商网站开发工作计划
  • 手机搞笑网站模板下载安装hao123从网上开始
  • 网站建设用哪个软件wordpress外贸推广
  • 《两学一做 榜样》网站请问网络维护有前途吗
  • 做网站的心得创建网站和主页
  • 网站建设初步课程介绍如何用html做网站头像
  • 建行网站会员中小企业建站平台
  • 专门做眼镜的国外网站群晖如何做网站服务器
  • 做网站是怎么做的如何选择网站建设平台
  • 松桃县住房和城乡建设局网站软件开发技术服务合同
  • 富阳做网站洛洛科技举报网站建设公司
  • 余姚做网站设计的苏ICP备网站建设中企动力无锡
  • 广州网站营销优化qq合肥家居网站建设怎么样
  • 微网站促销版秦皇岛城市建设网