在 C++ 中,`std::shared_ptr` 是标准库(自 C++11 起)提供的一种智能指针(Smart Pointer),位于 `<memory>` 头文件中 发布时间:2026/8/5 12:09:30 在 C 中std::shared_ptr是标准库自 C11 起提供的一种智能指针Smart Pointer位于memory头文件中。它的主要作用是自动管理动态分配的内存堆内存彻底告别手动new/delete从而防止内存泄漏Memory Leak和悬挂指针Dangling Pointer/野指针。一、 核心机制引用计数Reference Countingstd::shared_ptr采用的是共享所有权Shared Ownership模型。多个 shared_ptr 共享同一块内存你可以把同一个对象赋值给多个std::shared_ptr指针。引用计数器Control Block在内部它维护了一个全局计数器记录当前有多少个shared_ptr正在指向这块内存。每当有一个新的shared_ptr指向该内存比如赋值、拷贝引用计数1。每当有一个shared_ptr离开作用域或被销毁引用计数-1。当引用计数降为0时系统会自动调用delete释放该内存。二、 基础使用示例#includeiostream#includememory// 必须引入头文件classMyClass{public:MyClass(){std::cout构造函数被调用\n;}~MyClass(){std::cout析构函数被调用内存释放\n;}voiddo_something(){std::cout执行操作...\n;}};intmain(){// 1. 创建 shared_ptr强烈推荐使用 std::make_shared效率更高且异常安全std::shared_ptrMyClassptr1std::make_sharedMyClass();std::cout当前引用计数: ptr1.use_count()std::endl;// 输出 1{// 2. 拷贝 ptr1 给 ptr2共享同一个对象std::shared_ptrMyClassptr2ptr1;std::cout拷贝后引用计数: ptr1.use_count()std::endl;// 输出 2ptr2-do_something();// 像普通指针一样通过 - 访问成员}// 3. ptr2 离开内部作用域被析构引用计数 -1std::coutptr2 销毁后引用计数: ptr1.use_count()std::endl;// 输出 1return0;}// 4. ptr1 离开 main 函数作用域引用计数降为 0对象被自动 delete三、 为什么在并发和设计模式中经常看到它在前面的多线程安全栈threadsafe_stack中我们用到了std::shared_ptr解决异常安全与所有权转移在并发环境下如果pop()函数直接返回值对象如T pop()若返回值拷贝构造失败抛出异常原本要弹出的元素可能已经丢失。而如果返回std::shared_ptrT堆内存的分配在弹出之前就完成。传递智能指针本身只是拷贝指针和增加引用计数不会抛出异常保证了操作的原子性和安全性。跨线程共享数据生命周期在多线程中你往往无法预知哪一个线程会最后结束并使用完数据。使用std::shared_ptr最后一个持有所指对象的线程退出时会自动清理内存避免了线程间“谁来负责delete”的扯皮问题。四、 使用注意事项陷阱循环引用Circular Reference如果对象 A 内部有一个指向 B 的shared_ptr而对象 B 内部也有一个指向 A 的shared_ptr双方的引用计数永远无法降到 0导致内存泄漏。解决方法将其中一端的引用改为std::weak_ptr弱引用指针不增加引用计数。性能开销相比裸指针或std::unique_ptr独占所有权shared_ptr内部需要维持额外的控制块且引用计数的加减是原子操作Thread-safe atomic operations会有微小的性能开销。线程安全性shared_ptr的引用计数本身是线程安全的原子操作。但它指向的对象本身的访问不是线程安全的对对象内容的读写仍需要配合std::mutex。 相关新闻 从“有线替代”到“万物互联”:蓝牙技术的发展历程与应用全景 在短距离无线通信领域,蓝牙技术无疑是最具代表性的存在。从1994年爱立信实验室的一个构想,到如今全球数十亿设备背后的连接基石,蓝牙用三十年的时间书写了一部从“小众技术”到“无处不在”的传奇。 一、蓝牙的起源:名字与技术的前… 2026/8/5 12:09:30 利用pyecharts自动化绘制地图(Map)与热力图(HeatMap)保姆级教程 摘要:本文介绍了如何利用Python中的可视化神器 pyecharts 实现数据的地理空间与热力分布可视化。文章将带你从零开始,详细讲解如何准备数据并绘制中国省级地图(Map)与用户活跃度热力图(HeatMap)。通过对 Vi… 2026/8/5 12:09:30 MySQL执行计划解析与性能优化实战 1. MySQL执行计划解析:从入门到精通作为数据库性能优化的核心工具,EXPLAIN命令是每位MySQL开发者必须掌握的技能。记得我第一次接手一个慢查询优化项目时,面对2秒的查询响应时间手足无措,直到前辈提醒我:"先看执行… 2026/8/5 12:09:30 最新新闻 嵌入式AI情感交互系统:让硬件拥有表情灵魂的架构设计 嵌入式AI情感交互系统:让硬件拥有表情灵魂的架构设计 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 项目定位与价值主张:从冷硬件到温暖交互… 2026/8/5 13:19:32 审小匠 vs 手工对标:审计同行业数据对比评测 审小匠 vs 手工对标:审计同行业数据对比评测 一、背景痛点:分析性程序离不开同行业对标,但手工对标又慢又偏 分析性程序是审计计划与执行阶段的标配动作。判断一家制造业客户的毛利率、费用率、存货周转率是否异常,光看自身三年趋… 2026/8/5 13:19:32 基于MCU的任意波形发生器设计:从DMA驱动DAC到输出级电路全解析 1. 从需求到芯片选型:为什么是MCU? 做任意波形发生器,听起来是个挺“硬核”的活儿,很多人第一反应可能是上FPGA,或者直接用现成的专用芯片。但作为一个在嵌入式领域摸爬滚打多年的老手,我得说,在… 2026/8/5 13:19:32 九大网盘直链提取终极指南:告别限速烦恼的浏览器脚本方案 九大网盘直链提取终极指南:告别限速烦恼的浏览器脚本方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天… 2026/8/5 13:19:32 Montserrat字体:城市美学与数字排版的完美融合 Montserrat字体:城市美学与数字排版的完美融合 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat Montserrat字体不仅仅是一款开源字体,更是一个承载着布宜诺斯艾利斯城市记忆的设计奇迹。这款几何无衬线字体… 2026/8/5 13:19:32 Video2X:让老旧视频重获新生的AI超分辨率神器 Video2X:让老旧视频重获新生的AI超分辨率神器 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video2x … 2026/8/5 13:14:32 日新闻 鸿蒙6.1 arkui.componentSnapshot组件截图坑:返回PixelMap不是dataURL 本文是「鸿蒙 6.1 API 23 开发坑系列」第 2 篇(ArkUI 桶第 2 篇)。本篇讲 ohos.arkui.componentSnapshot namespace(API 10,鸿蒙 6.1 API 23 基座)——组件截图三个方法 get/getSync/createFromBuilder。鸿蒙坑根因&am… 2026/8/5 0:26:31 20个P0级大模型本体概念,产品经理必看,收藏这份学习资料! 文章介绍了20个大模型本体概念,帮助产品经理在AI产品决策时,不再依赖模糊判断,而是基于精准认知。内容涵盖了模型分类、开源与闭源模型、本地与云端部署、基础模型与对话模型、推理模型、Token、上下文窗口、幻觉、温度参数、系统提示词、思维… 2026/8/5 0:26:31 支付宝体验技术部拆分!前端转型Agent全栈,小白程序员必收藏 支付宝体验技术部拆分,前端工程师转型Agent开发全栈。玉伯等专家主导的团队,曾开发Ant Design、AntV等知名开源项目,影响行业。AI技术推动智能Agent兴起,打破前端边界,需掌握大模型、智能体逻辑等能力。组织调整旨在灵… 2026/8/5 0:26:31 周新闻 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/5 5:03:56 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/5 7:15:00 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/5 6:23:51 月新闻 【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/5 7:15:27 AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/4 8:25:47 AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/5 4:50:19
从“有线替代”到“万物互联”:蓝牙技术的发展历程与应用全景 在短距离无线通信领域,蓝牙技术无疑是最具代表性的存在。从1994年爱立信实验室的一个构想,到如今全球数十亿设备背后的连接基石,蓝牙用三十年的时间书写了一部从“小众技术”到“无处不在”的传奇。 一、蓝牙的起源:名字与技术的前… 2026/8/5 12:09:30
利用pyecharts自动化绘制地图(Map)与热力图(HeatMap)保姆级教程 摘要:本文介绍了如何利用Python中的可视化神器 pyecharts 实现数据的地理空间与热力分布可视化。文章将带你从零开始,详细讲解如何准备数据并绘制中国省级地图(Map)与用户活跃度热力图(HeatMap)。通过对 Vi… 2026/8/5 12:09:30
MySQL执行计划解析与性能优化实战 1. MySQL执行计划解析:从入门到精通作为数据库性能优化的核心工具,EXPLAIN命令是每位MySQL开发者必须掌握的技能。记得我第一次接手一个慢查询优化项目时,面对2秒的查询响应时间手足无措,直到前辈提醒我:"先看执行… 2026/8/5 12:09:30
嵌入式AI情感交互系统:让硬件拥有表情灵魂的架构设计 嵌入式AI情感交互系统:让硬件拥有表情灵魂的架构设计 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 项目定位与价值主张:从冷硬件到温暖交互… 2026/8/5 13:19:32
审小匠 vs 手工对标:审计同行业数据对比评测 审小匠 vs 手工对标:审计同行业数据对比评测 一、背景痛点:分析性程序离不开同行业对标,但手工对标又慢又偏 分析性程序是审计计划与执行阶段的标配动作。判断一家制造业客户的毛利率、费用率、存货周转率是否异常,光看自身三年趋… 2026/8/5 13:19:32
基于MCU的任意波形发生器设计:从DMA驱动DAC到输出级电路全解析 1. 从需求到芯片选型:为什么是MCU? 做任意波形发生器,听起来是个挺“硬核”的活儿,很多人第一反应可能是上FPGA,或者直接用现成的专用芯片。但作为一个在嵌入式领域摸爬滚打多年的老手,我得说,在… 2026/8/5 13:19:32
九大网盘直链提取终极指南:告别限速烦恼的浏览器脚本方案 九大网盘直链提取终极指南:告别限速烦恼的浏览器脚本方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天… 2026/8/5 13:19:32
Montserrat字体:城市美学与数字排版的完美融合 Montserrat字体:城市美学与数字排版的完美融合 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat Montserrat字体不仅仅是一款开源字体,更是一个承载着布宜诺斯艾利斯城市记忆的设计奇迹。这款几何无衬线字体… 2026/8/5 13:19:32
Video2X:让老旧视频重获新生的AI超分辨率神器 Video2X:让老旧视频重获新生的AI超分辨率神器 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video2x … 2026/8/5 13:14:32
鸿蒙6.1 arkui.componentSnapshot组件截图坑:返回PixelMap不是dataURL 本文是「鸿蒙 6.1 API 23 开发坑系列」第 2 篇(ArkUI 桶第 2 篇)。本篇讲 ohos.arkui.componentSnapshot namespace(API 10,鸿蒙 6.1 API 23 基座)——组件截图三个方法 get/getSync/createFromBuilder。鸿蒙坑根因&am… 2026/8/5 0:26:31
20个P0级大模型本体概念,产品经理必看,收藏这份学习资料! 文章介绍了20个大模型本体概念,帮助产品经理在AI产品决策时,不再依赖模糊判断,而是基于精准认知。内容涵盖了模型分类、开源与闭源模型、本地与云端部署、基础模型与对话模型、推理模型、Token、上下文窗口、幻觉、温度参数、系统提示词、思维… 2026/8/5 0:26:31
支付宝体验技术部拆分!前端转型Agent全栈,小白程序员必收藏 支付宝体验技术部拆分,前端工程师转型Agent开发全栈。玉伯等专家主导的团队,曾开发Ant Design、AntV等知名开源项目,影响行业。AI技术推动智能Agent兴起,打破前端边界,需掌握大模型、智能体逻辑等能力。组织调整旨在灵… 2026/8/5 0:26:31
ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/5 5:03:56
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/5 7:15:00
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/5 6:23:51
【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/5 7:15:27
AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/4 8:25:47
AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/5 4:50:19