news 2026/3/11 22:59:20

15、C++ 内存管理:从弱指针到自定义分配器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15、C++ 内存管理:从弱指针到自定义分配器

C++ 内存管理:从弱指针到自定义分配器

1. 弱指针(Weak Pointer)

弱所有权(Weak ownership)不会使对象保持存活状态。只有当其他对象拥有该对象时,我们才能使用它。使用弱指针的一个常见原因是打破引用循环(reference cycle)。引用循环发生在两个或多个对象使用共享指针相互引用时。即使所有外部的std::shared_ptr构造函数都已释放,这些对象仍会因相互引用而保持存活。

为什么不直接使用原始指针呢?弱指针和原始指针有什么区别吗?实际上,弱指针使用起来更安全,因为只有当对象实际存在时,我们才能引用它,而悬空的原始指针则不具备这种特性。以下是一个示例代码:

auto i = std::make_shared<int>(10); auto weak_i = std::weak_ptr<int>{i}; // Maybe i.reset() happens here so that the int is deleted... if (auto shared_i = weak_i.lock()) { // We managed to convert our weak pointer to a shared pointer std::cout << *shared_i << '\n'; } else { std::cout << "weak_i has expired, shared_ptr was nullptr\n"; }

当我们

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 4:49:37

Blender版本管理神器:一键掌控多版本切换的艺术

Blender版本管理神器&#xff1a;一键掌控多版本切换的艺术 【免费下载链接】Blender-Launcher Standalone client for managing official builds of Blender 3D 项目地址: https://gitcode.com/gh_mirrors/bl/Blender-Launcher 还在为电脑上安装的多个Blender版本而烦恼…

作者头像 李华
网站建设 2026/3/5 1:08:42

摄像头心率测量:非接触式健康监测的终极方案

摄像头心率测量&#xff1a;非接触式健康监测的终极方案 【免费下载链接】Heart-rate-measurement-using-camera real time application to measure heart rate 项目地址: https://gitcode.com/gh_mirrors/he/Heart-rate-measurement-using-camera 在当今数字化医疗时代…

作者头像 李华
网站建设 2026/3/9 0:55:35

NotaGen完整指南:AI驱动的一键式古典音乐创作神器

想要创作专业级古典音乐却苦于不懂乐理&#xff1f;NotaGen正是为你量身打造的AI音乐创作助手&#xff01;这个革命性的符号音乐生成工具基于先进的大语言模型技术&#xff0c;让任何人都能轻松生成优美的古典乐谱。无论你是音乐爱好者、教育工作者还是技术探索者&#xff0c;N…

作者头像 李华
网站建设 2026/3/10 10:50:44

人脸裁剪神器:三步搞定批量头像自动化处理

人脸裁剪神器&#xff1a;三步搞定批量头像自动化处理 【免费下载链接】autocrop :relieved: Automatically detects and crops faces from batches of pictures. 项目地址: https://gitcode.com/gh_mirrors/au/autocrop 还在为手动裁剪头像而烦恼吗&#xff1f;人脸自动…

作者头像 李华
网站建设 2026/3/10 19:41:54

新手必看:在Kibana中遇到Elasticsearch 201状态码意味着什么

别慌&#xff01;Kibana 里弹出 Elasticsearch 201 状态码&#xff1f;这才是你该懂的真相 你有没有在 Kibana 的 Dev Tools 控制台敲下一条 PUT 请求&#xff0c;然后看到返回结果里赫然写着 201 —— 心头一紧&#xff1a;“糟了&#xff0c;是不是出错了&#xff1f;”…

作者头像 李华
网站建设 2026/3/10 4:29:25

快速掌握iCloud照片备份:新手友好的完整解决方案

快速掌握iCloud照片备份&#xff1a;新手友好的完整解决方案 【免费下载链接】icloud_photos_downloader A command-line tool to download photos from iCloud 项目地址: https://gitcode.com/gh_mirrors/ic/icloud_photos_downloader 想要安全备份iCloud中的珍贵照片但…

作者头像 李华