- 博客(11)
- 收藏
- 关注
原创 【C/C++ 指针】:从入门到精通,告别“野指针”的恐惧!
要理解指针,首先要理解计算机的内存。你可以把计算机的内存想象成一个巨大的、连续的、由无数个小格子(字节)组成的公寓楼。每个小格子都有一个唯一的门牌号,这个门牌号就是它的内存地址。当你声明一个变量时,比如,系统就会在内存中找一个空闲的格子(或几个格子,取决于数据类型大小),把10存进去,并给这个格子一个门牌号。指针,本质上就是一个变量,它存储的不是普通的数据(比如整数、字符),而是另一个变量的“门牌号”(内存地址)。用一张图来表示:fill:#333;color:#333;color:#333;
2025-08-19 11:32:02
636
原创 单例模式:确保一个类只有一个实例【设计模式】
单例模式是一种创建型设计模式这是单例模式最基本也是最重要的目标。它通过限制类的构造函数来防止外部随意创建新实例。既然只有一个实例,那么就需要一个统一、方便的途径来获取这个唯一的实例。可以把单例模式想象成一个**“公司的 CEO”**:一个公司通常只有一个 CEO,并且所有需要 CEO 决策的事情,都必须通过这个唯一的 CEO 来处理。你不能随便“创建”一个新的 CEO,只能找到当前公司的那个 CEO。单例模式提供了一种简单直接的方式来确保一个类只有一个实例并提供全局访问点。
2025-08-18 18:35:18
587
原创 责任链模式:解决流程业务产生大量if-else的方式【设计模式】
责任链模式是一种行为型设计模式,它将多个处理者组成一条链条,让请求沿着链条传递,直到有一个处理者能处理该请求。“谁能处理谁处理,处理不了就传给下一个”。你去公司报销(请求),先找部门行政(第一个处理者);行政只能处理500元以内的报销,超过则转给财务专员(第二个处理者);财务专员能处理5000元以内的,超过则转给财务经理(第三个处理者);直到某个处理者能处理你的报销,或链条结束(如超过最高审批额度则驳回)。打破“大而全”的处理逻辑,让每个处理者专注于自己的职责;
2025-08-17 19:23:27
555
原创 工厂模式:一篇文章学会“对象创建”的最佳方式【设计模式】
大家好,上一篇文章我们提到了设计模式中常用的解决if-else代码臃肿场景下的策略模式,对于if-else的解决方法还有一种常见的设计模式,就是我们今天介绍的这个主题–工厂模式。当你发现代码中充斥着大量的对象创建逻辑和条件判断时,不妨考虑使用工厂模式,将对象的创建交给专门的"工厂"来处理,让你的代码更加灵活、清晰和易于维护。这样,客户端只需要知道所需产品的工厂,而无需知道具体的创建过程,实现了创建与使用的分离。实现了抽象工厂接口,负责创建具体的产品对象,包含了具体的创建逻辑。
2025-08-16 07:38:27
922
原创 策略模式:一篇文章告别 if-else 炼狱【C++】【设计模式】
策略模式是一种行为型设计模式,它定义了一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式使得算法可以独立于使用它的客户端而变化。将变化的“行为”从不变的“骨架”中抽离出来,让它们各自独立,然后可以在运行时根据需要进行替换。你有一个乐高机器人(上下文),它有手臂(可以执行动作)。你可以为机器人安装不同的手臂(具体策略):有的手臂可以抓取物品,有的手臂可以发射炮弹,有的手臂可以挥舞光剑。这些手臂都遵循一个共同的接口(策略接口):它们都能“执行动作”。
2025-08-15 17:23:12
1215
原创 C++ 双缓冲(Double Buffer)实现读写分离:兼顾性能与线程安全,游戏引擎中的应用实践
双缓冲模式是一种强大而优雅的并发编程技术,它通过读写分离和原子翻转,有效地解决了多线程环境下数据一致性与性能之间的矛盾。我们的 C++实现利用管理生命周期,const强制只读性,以及std::mutex保证翻转的原子性,提供了一个线程安全且易于使用的解决方案。后台线程处理数据,前端线程展示数据。生产者将数据写入一个缓冲区,消费者从另一个缓冲区读取。更新配置时,在后台准备新配置,完成后原子性切换,不影响正在运行的业务。。
2025-08-14 18:33:08
976
原创 【C++库】nlohmann/json库处理JSON数据
这是一个头文件专用 (header-only)库,意味着你不需要编译它,只需将其json.hpp文件包含到你的项目中即可。充分利用了 C++11/14/17 的特性,提供了非常直观和类似 Python 字典/列表的 API。MIT 许可证。提供了非常方便的机制,可以将自定义的结构体/类与 JSON 对象进行双向转换,只需定义to_json和from_json两个非成员函数。// 自定义结构体int age;
2025-08-14 11:55:29
705
原创 【C++ 函数参数传递方式】:从 const 到值 / 引用 / 指针
输入参数优先用对于非基本类型(自定义类、等),如果函数只需读取参数,这是最优选择 —— 无拷贝开销,且能保证安全。需修改参数时用Type&函数需要修改参数且希望外部感知到变化时,用非const引用,比指针更简洁安全。基本类型和小型对象用值传递intdouble等基本类型,或体积小的自定义类型,拷贝开销可忽略,值传递语义更清晰。参数可能为nullptr时用指针Type*避免裸指针除非必须(如兼容 C API、操作 C 风格数组),否则优先用引用;动态内存管理建议用智能指针(
2025-08-14 11:10:33
914
原创 计算机初学者入门之计算机仓库(磁盘)
计算机磁盘就像仓库,负责长期存储数据(文档、照片、程序等),即使断电也不会丢失。CPU是大脑处理信息,内存是工作台临时存放当前任务,而磁盘(HDD/SSD)作为仓库容量大但速度较慢。工作时,数据从磁盘调入内存供CPU处理,操作完成再存回磁盘。HDD采用机械存取速度较慢但价低,SSD电子存取更快但成本高。磁盘确保数据持久性、系统启动和存储扩展,是计算机不可或缺的基础部件。初学者只需记住:CPU=大脑,内存=工作台,磁盘=仓库,三者协同保障
2025-08-13 10:16:19
516
原创 计算机初学者入门之计算机工作台(内存)
计算机内存(RAM)是CPU处理数据的临时工作台,相比硬盘这个仓库能更快提供数据。内存大小决定计算机同时处理任务的能力,内存不足会导致卡顿。工作流程包括:从硬盘加载数据到内存供CPU快速处理,关机后数据消失。
2025-08-13 10:00:30
634
原创 计算机初学者入门之计算机大脑(CPU)
本文深入浅出地讲解了CPU的工作原理及其核心部件。CPU作为计算机的大脑,主要由控制单元(指挥中心)、算术逻辑单元(计算引擎)和寄存器(高速工作台)三大部分组成,通过取指、解码、执行、写回四个步骤完成指令周期。
2025-08-12 17:40:57
861
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人