花开月下机器人 三类核心智能指针40秒上手

admin4小时前花开月下机器人2

核心原理10秒速懂

智能指针的本质是基于RAII机制的栈对象,把堆内存的生命周期完全绑定到栈对象的自动销毁流程上,不用手动写delete,哪怕程序中途抛异常也不会出现内存泄漏。所有智能指针都定义在<memory>头文件里,完全不用后台垃圾回收,靠C++原生的作用域规则管理内存,性能几乎和裸指针持平。

三类核心智能指针40秒上手

  1. unique_ptr 独占智能指针它是零额外开销的独占式指针,大小和普通裸指针完全一致,同一时间只能有一个unique_ptr指向目标对象,禁止直接拷贝,只能用std::move转移所有权。出了作用域自动释放内存,最适合管理局部独占资源,比如嵌入式场景下的外设句柄、临时大数组。

std::unique_ptr<LargeObject> pObj(new LargeObject());
pObj->doWork(); // 直接用->访问对象,和裸指针用法一致
// 函数结束自动释放,完全不用手动delete

  1. shared_ptr 共享智能指针通过引用计数实现多对象共享同一块内存,每多一个shared_ptr拷贝指向对象,引用计数就+1,指针销毁时计数-1,计数归0就自动释放内存。它的大小是裸指针的两倍,一块存对象地址,一块存控制块的引用计数,适合多个模块共同管理的资源场景。

std::shared_ptr<MyData> p1 = std::make_shared<MyData>();
std::shared_ptr<MyData> p2 = p1; // 引用计数变为2
std::cout << p1.use_count() << std::endl; // 输出2

  1. weak_ptr 弱引用指针专门用来解决shared_ptr的循环引用问题,它指向shared_ptr管理的对象但完全不增加引用计数,相当于一个“安全观察者”,不会影响对象的生命周期。需要访问对象时调用lock()就能拿到一个有效的shared_ptr,避免出现悬空指针。

最后10秒避坑提醒

永远不要在函数参数列表里直接new智能指针,要单独一行创建智能指针,避免极端场景下的隐式内存泄漏;C++98的auto_ptr已经完全被unique_ptr替代,新项目不要使用;shared_ptr的循环引用一定要用weak_ptr打破,不然内存永远不会被释放。 </doc_start> 一分钟就能掌握核心用法,日常开发里优先用unique_ptr,需要共享资源再用shared_ptr,遇到循环引用搭配weak_ptr,几乎可以彻底告别手动管理内存的各类隐患。


澳五机器人 澳八机器人 河内机器人 加拿大机器人 花开月下机器人 朱雀机器人 速飞机器人 名爵机器人 飞天机器人 BV机器人 涂六飞单机器人 美猴王机器人 大富豪机器人 速讯机器人 五球助手 十球助手

相关文章

FastAPI数据库实战:从SQLAlchemy原理到高效连接管理,告别性能瓶颈(一)

引言在构建高性能API时,数据库操作往往是性能瓶颈的主要来源。FastAPI作为现代Python Web框架的代表,与SQLAlchemy这一强大的ORM工具结合使用时,能够显著提升开发效率。然而,如...

花开月下机器人 显卡本身规格限制RX 6650 XT定位中端游戏显卡

一、硬件与驱动层面显卡本身规格限制RX 6650 XT定位中端游戏显卡,拥有8GB GDDR6显存、2048个流处理器,其核心架构Navi 23并非为AI深度学习深度优化。相比专业计算显卡,其在FP1...

大模型基础补全计划(一)——相关知识点回顾与Qwen3-VL-2B

引言:大模型时代的认知重构当GPT-4以接近人类水平的语言理解能力通过图灵测试时,我们正站在人工智能发展的历史性转折点。大模型技术不仅重塑了人机交互范式,更成为推动各行业智能化转型的核心引擎。本文作为...

结构化机器学习项目第一周:机器学习策略(二)——数据集设置

在机器学习项目中,数据集设置是构建高效模型的关键起点,直接影响模型性能与泛化能力。本文将深入探讨数据集划分、数据分布分析、验证集构建等核心环节,结合实践经验总结最佳策略。一、数据集划分:训练集、验证集...

在 GeckoCIRCUITS 上开发新工具模块的方法(四)

在前三篇文章中,我们系统介绍了 GeckoCIRCUITS 模块开发的基础流程、实时控制实现、硬件接口集成及跨平台兼容性设计。 随着电力电子仿真需求的不断演进,开发者常面临更复杂的挑战,例如需要集成智...

Claude Code 使用指南:AI编程的终端革命

引言:AI编程的新范式在人工智能技术飞速发展的2026年,AI编程助手已经从简单的代码补全工具进化为能够自主执行复杂任务的智能代理。Claude Code作为Anthropic公司推出的终端原生AI编...