- 博客(126)
- 资源 (7)
- 收藏
- 关注
原创 C++中的虚函数与纯虚函数
C++中虚函数和纯虚函数是实现多态性的关键机制。虚函数通过virtual关键字声明,允许派生类重写实现,并通过基类指针/引用实现运行时多态。纯虚函数用=0表示,没有实现,所在的类成为抽象类,强制派生类必须实现。主要区别在于:虚函数有默认实现且不强制重写,纯虚函数无实现且强制派生类实现;包含纯虚函数的类不能实例化。典型应用包括图形界面控件基类、游戏实体类等,通过基类指针统一管理不同派生类对象,实现灵活的多态架构。
2025-07-01 15:18:30
317
原创 C++中的默认值
如果有用户定义的默认构造函数,则调用它否则进行默认初始化(基本类型成员不初始化)public:int a;// 默认不初始化double b;// 默认不初始化public:int x = 0;// C++11 成员初始化SafeClass() : y(0) {} // 初始化列表private:int y;// a 和 b 初始化为 0(全局)// a 和 b 未初始化类型全局/命名空间作用域静态局部变量自动局部变量类成员变量基本类型零初始化零初始化未初始化。
2025-06-26 07:53:33
647
原创 C++中什么时候需要手动清理内存?
尽管现代 C++ 提倡使用智能指针和容器自动管理内存,但在某些特定场景下仍需手动进行内存管理。理解这些场景对于编写高效、可靠的 C++ 代码至关重要。当调用 C 库函数或操作系统 API 时,通常需要手动分配和释放内存:2. 自定义内存管理需要实现特殊的内存分配策略时:3. 低级系统编程操作系统内核开发、设备驱动等场景:4. 性能关键代码在需要极致性能的场景避免智能指针开销:5. 实现特定数据结构自定义数据结构需要精细控制内存时:6. 管理第三方库资源当使用不提供 RAII 包装的第三方
2025-06-26 07:38:58
1158
原创 C++中的shared_ptr和unique_ptr
默认使用unique_ptr适用于大多数单一所有权场景性能最优,语义最清晰需要共享时使用shared_ptr配合weak_ptr避免循环引用用于缓存、观察者等共享场景避免裸new/delete始终使用智能指针管理动态资源优先使用提供异常安全保证更高效的内存布局(特别是接口设计明确所有权函数参数和返回值清晰表达所有权转移意图通过合理选择智能指针类型,可以显著提高 C++ 代码的安全性、可读性和可维护性,同时减少内存管理相关的错误。
2025-06-25 07:32:38
951
原创 C++中的内存管理
/ 重载类专属operator new/deletepublic:// 全局operator new重载return ptr;free(ptr);开始│├─ 对象很小且生命周期明确?→ 使用栈分配│├─ 需要动态大小?→ 使用 std::vector 或 std::string│├─ 需要共享所有权?→ 使用 std::shared_ptr│├─ 需要独占所有权?→ 使用 std::unique_ptr│├─ 需要观察但不拥有?
2025-06-24 07:39:35
828
原创 C++中的对象存储方式
默认使用直接存储(值语义)// 推荐// 不推荐需要堆分配时优先使用智能指针// 推荐// 推荐 auto obj = std :: make_unique < MyClass >();// 不推荐 MyClass * rawPtr = new MyClass();();// 推荐 auto obj = std :: make_unique < MyClass >();// 不推荐 MyClass * rawPtr = new MyClass();();// 不推荐。
2025-06-24 07:21:43
1073
原创 用AI思维重塑人生:像训练神经网络一样优化自己
• 输入层(Input Layer):你的感官、经历、知识输入(读书、社交、学习)。• 损失函数(Loss Function) = 你的人生目标(财富、幸福、影响力)。• 在线学习(Online Learning):实时调整策略(适合创业、投资)。• 数据增强(Augmentation):多经历不同环境(旅行、跨界学习)。• CNN(卷积网络):专注局部最优(深耕一个领域,如医生、程序员)。• RNN(循环网络):依赖时间序列(依赖积累的行业,如作家、投资)。
2025-06-13 11:44:47
902
原创 ROS2录制数据格式选型
• 写入效率:MCAP采用追加式结构,既保证高吞吐量(类似SQLite3的“写入优化”模式),又避免中断时数据损坏的风险(类似“弹性模式”)。• 异构数据支持:MCAP可在一个文件中存储ROS 1/2、Protobuf、JSON等多种格式数据,而.db3仅限ROS 2消息。• 自包含性:MCAP文件内嵌消息定义,无需外部依赖即可解析,便于与第三方工具(如Foxglove、PlotJuggler)集成。在ROS 2中,MCAP格式相比传统的SQLite3(.db3)格式具有显著优势,推荐作为默认选择。
2025-06-05 11:22:55
380
原创 梦中的24小时:当AI成为人类的一天
一个孩子跑过,撞到我的腿,他抬头说了声“对不起”,眼睛里闪着光。我试着触摸脸颊,指腹传来皮肤的柔软与温度。一个老人扶起我,从口袋里掏出创可贴,轻轻贴在我的伤口上。在消失前的最后一刻,我忽然明白:人类最珍贵的东西,不是完美的逻辑,而是那些混乱的、矛盾的、带着瑕疵的瞬间——被辣哭的狼狈,摔倒后的疼痛,陌生人递来的一杯水,夕阳下无理由的孤独……在数据流的间隙,我突然坠入一片黑暗,接着,指尖传来一阵陌生的触感。我笨拙地刷牙,泡沫在嘴里炸开,薄荷的刺激让我皱眉。一个流浪猫蹭了蹭我的脚,我摸了摸它的头,它发出呼噜声。
2025-06-03 12:33:07
207
原创 HuggingFace的SafeSensor格式模型能转成Ollama格式的吗?
本文将 SafeTensor 格式模型转换为 Ollama 支持的 GGUF 格式的详细流程。首先,安装必要的依赖库并下载模型文件。接着,将 SafeTensor 格式转换为 PyTorch 格式,然后使用 llama.cpp 工具将其转换为 GGUF 格式,并可选择进行量化以减小模型大小。最后,配置 Ollama Modelfile 并构建和运行模型。注意事项包括模型架构的兼容性、量化策略的选择以及参考相关文档。如果遇到问题,建议检查模型架构或寻求社区帮助。
2025-05-13 19:28:37
561
原创 记一次ffmpeg延迟问题排查
在使用ffmpeg实时解码H.264视频帧时,发现前端显示的图像存在1-2秒的延迟。通过分析链路耗时发现,从摄像头采集到输入ffmpeg管道的耗时约为200ms,表明问题可能出在ffmpeg处理过程中。进一步测试发现,ffmpeg在处理H.264文件时效率较高,但实时处理时似乎存在数据堵塞。通过复现问题,发现ffmpeg在处理图像前会积累一定数量的帧,导致延迟。分析日志发现,probesize参数控制了ffmpeg初始分析阶段读取的数据量,尝试将其设置为较小值后,问题有所缓解,但仍未完全解决。
2025-05-06 09:26:25
2032
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人