- 博客(180)
- 收藏
- 关注
原创 《你真的了解C++吗》No.014:RTTI 的代价——typeid 与 dynamic_cast 的真相
如果你追求极致速度:禁用 RTTI,使用enum标签或访问者模式 (Visitor Pattern)。如果你追求安全与灵活:保留 RTTI,但在逻辑设计上尽量减少下行转换(Downcasting)。记住,优秀的 C++ 设计通常应该通过虚函数多态来解决问题,而不是频繁地去询问对象:“你到底是谁?聊完了运行时的身份识别,我们要回到一个被大多数人忽视、却在现代 C++ 中翻身做主的关键字。它能让复杂的计算在编译阶段就全部完成,实现真正的“运行时零开销”。➡️。
2025-12-26 11:26:03
521
原创 办公室中的Python课【信息捕手】网页爬虫基础:让互联网成为你的数据库
Requests:发起网络访问的工具。:200 是成功,404 是找不到,403 是被拒绝。Headers:是爬虫的“身份证”,一定要学会伪装。[下一篇 (P14),我们将回到本地办公,学习Word 自动化 (Python-docx)。你将学会如何让 Python 自动生成合同、批量填充证明材料、以及一键修改 100 份文档的格式。**👉 想要让文档自己“写”出来吗?让我们进入 Word 自动化的世界!
2025-12-26 11:18:24
635
原创 办公室中的Python课 P12 【效率核弹】Pandas 自动化:告别手动处理 Excel
Pandas:Excel 自动化的终极工具。DataFrame:Python 里的“虚拟表格”。链式操作:筛选、统计、保存,一气呵成。[下一篇 (P13)网页爬虫基础 (Requests)。你将学会如何让 Python 自动从网页上抓取你需要的价格、新闻或行业数据,不再需要手动复制粘贴网页信息!**👉 想要让互联网成为你的数据库吗?让我们进入爬虫的世界!
2025-12-25 10:14:02
733
原创 《你真的了解C++吗》No.013:多重继承的噩梦——指针偏移与虚继承的秘密
优先使用组合:如果不是为了多态,不要使用继承。接口类:如果必须多重继承,尽量只继承一个有数据的基类,其余全为纯虚接口(不含数据成员的类,可以避免大部分偏移麻烦)。警惕强转:在多重继承下使用是极度危险的,因为它不会处理指针偏移,务必使用或。既然我们谈到了能够安全处理指针偏移,那么它是如何在运行时“侦测”出一个对象的真实类型的?➡️《你真的了解C++吗》No.014:RTTI 的代价 (The Cost of RTTI): typeid 与 dynamic_cast 的真相。
2025-12-25 10:08:40
725
原创 《Unreal 对 C++ 做了什么》系列 06. UE 的枚举与接口:UENUM 和 UINTERFACE
public:// 纯 C++ 接口函数// 蓝图可重写的接口函数通过UENUM和UINTERFACE,UE 解决了 C++ 原生设计在“数据可视化”和“类型多态”上的不足。特别是接口的双生类模式,虽然初看繁琐,但它是虚幻引擎能够同时支持高性能 C++ 和高灵活性蓝图的基石。《07. 内存管理的守护神:Smart Pointers (TSharedPtr, TWeakPtr) vs. UObject》。
2025-12-24 15:12:34
330
原创 《你真的了解C++吗》No.012:虚函数的底层代价——深入 vptr 与 vtable
指针变了:意味着你换了一本书看。vtable 不变:意味着图书馆的索引表是固定的。vptr 不变:意味着这本书的封面(类型身份)在印好后就不会再改。理解了这一点,你也就理解了 C++ 如何在“静态的语言”中通过“动态的指针”实现灵活的多态。在单继承中,对象只有一个vptr。但如果是多重继承呢?一个对象会有多张面孔吗?当我们将派生类指针强转为第二个基类指针时,指针的地址值竟然会发生“位移”?➡️。
2025-12-24 14:48:29
611
原创 办公室中的Python课 P11 【地毯式搜索】文件与路径:让 Python 成为你的文件管家
os库:处理“外壳”(文件夹、文件名、路径)。open():处理“内核”(文件里面的文字内容)。**路径前面加r**:是 Windows 用户避免报错的“保命符”。[下一篇 (P12)Excel 自动化 (Pandas)。你将学会如何用 Python 瞬间读取几万行表格、进行复杂的筛选和计算。这才是你真正能够“提前下班”的底气!**👉 准备好告别手动 Excel 统计了吗?让我们进入 Pandas 的世界!
2025-12-24 11:27:42
803
原创 灵足之脑:大模型驱动双足机器人全栈技术实战系列》第 3 篇:大模型简史 —— 从 Transformer 到多模态,大脑是如何准备好的?
在上一篇中,我们解析了双足机器人那副令人头疼的“物理躯壳”。要驱动这具复杂的身体,我们需要一个极度聪明且具备通用泛化能力的“大脑”。十年前,机器人的大脑由成千上万行复杂的if-else和比例积分微分(PID)算法组成;五年前,深度学习让我们能用专门的视觉网络识别物体。而今天,的爆发,为具身智能提供了跨越式的进化契机。本篇将追溯大模型的发展脉络,探讨它是如何一步步“准备好”接管物理世界的。
2025-12-24 11:23:27
262
原创 【计算的脉络:从硅片逻辑到高并发抽象】第 7 篇:内存屏障(上):x86 与 ARM 下的屏障语义差异
是一类特殊的 CPU 指令。如果把 CPU 内部的指令流比作一群在大街上狂奔的赛车,内存屏障就是一道红灯。它强制要求红灯前的赛车(指令)必须全部过线并完成登记(写回内存或生效),红灯后的赛车才能起步。
2025-12-23 15:42:41
1135
原创 办公室中的Python课 P10 【超级外挂】模块与库:站在巨人的肩膀上
模块 (Module):一个后缀为.py的 Python 文件,里面存着一堆函数。库 (Library):很多个模块组合在一起,形成了一个功能齐全的“大工具箱”。import:开启外挂的钥匙。as:给外挂起简称,写代码更快。不要重复造轮子:先搜索是否有现成的库,这是资深开发者的第一反应。[下一篇 (P11)文件与路径操作 (OS & File)。你将学会如何让 Python 自动扫描文件夹、批量重命名文件、以及在不同文件夹之间瞬移数据!**👉 想要让你的文件自己“听话”吗?
2025-12-23 15:39:40
915
原创 《你真的了解C++吗》No.011:inline 的多重身份——不仅仅是建议
在大多数初级教程中, 被描述为一种编译器优化建议:它告诉编译器,将函数调用处直接替换为函数体,从而减少函数调用的开销(如压栈、跳转)。然而,在现代 C++ 中, 的“建议”作用正在淡化,而它的“链接”作用却变得至关重要。如果你只把它看作性能开关,你将无法理解为什么某些函数必须放在头文件里,或者为什么你的程序会出现莫名其妙的重定义错误。最初, 是为了解决小函数的开销问题。结论: 程序员对“是否内联”的控制力在现代编译器面前其实很弱。这是 现代用法中最核心的语义:允许函数在多个翻译单元(Translation
2025-12-22 15:31:35
511
原创 办公室中的Python课 P09 【模块化思维】函数:封装你的专属工具箱
你可以把函数想象成一台咖啡机输入(参数):你放入咖啡豆和水。处理(函数体):机器内部磨豆、加热、冲泡。输出(返回值):最后你得到一杯热咖啡。def:定义函数的开始。return:函数执行结果的出口。函数名:要起得通俗易懂(多用动词开头,如send_emailload_data[下一篇 (P10),我们将学习如何把这些函数像乐高积木一样组织起来——模块与库 (Module & Library)。你将学会如何“偷懒”,直接调用别人写好的数千个专业工具,比如一键生成 Word、一键爬取网页!**
2025-12-22 11:50:23
973
原创 【计算的脉络:从硅片逻辑到高并发抽象】第 5 篇:缓存一致性(上):MESI 状态机的跳转细节
在多核处理器中,每个核心的 Cache 并不是孤岛。它们都连接在一条共同的“大街”上——。是一种广播机制:当核心 A 对自己的 L1 Cache 进行读写时,它必须将这个信号同步到总线上。其他核心(B、C、D)的 Cache 控制器会时刻“监听”总线上的动静。一旦发现总线请求的内存地址在自己的 Cache 中也有备份,就会根据协议做出响应。
2025-12-22 11:45:55
1092
原创 设计模式[14]——命令模式一分钟彻底说透
将“请求”(操作)封装成一个独立的对象,从而让发送者和执行者完全解耦,支持撤销、重做、队列、日志等高级功能。
2025-12-19 19:36:25
371
原创 【计算的脉络:从硅片逻辑到高并发抽象】 第 4 篇:Cache Line 深度解密:为什么 64 字节决定了性能?
当你向内存请求一个long型变量(8 字节)时,CPU 并不是只把这 8 个字节取回缓存。相反,它会以为单位,将目标变量及其相邻的数据一并“打包”带走。这一块连续的内存空间,被称为。还是因为。硬件赌你读了数组的第 0 位,马上就会读第 1 位。一次搬运 64 字节,虽然浪费了一点带宽,但极大地提高了后续访问的命中率。
2025-12-19 17:35:15
384
原创 【计算的脉络:从硅片逻辑到高并发抽象】第 3 篇:内存层次:为什么寄存器到内存的距离像北京到上海?
在过去的几十年里,CPU 的主频和计算效率呈指数级增长,但内存(DRAM)访问延迟的改善却极其缓慢。如果我们把 CPU 执行一条指令的时间比作这种跨越量级的速度差,就是著名的**“内存墙(Memory Wall)”**。如果 CPU 每次都要去内存取数,它绝大部分时间将处于“发呆”状态。为了解决这个问题,硬件工程师在 CPU 内部编织了一张复杂的缓存网。
2025-12-19 17:26:40
475
原创 《你真的了解C++吗》No.010:头文件卫士的进化与不足——Header Guards vs Pragma Once
是法律,保证了代码在任何地方都能跑通,但管理繁琐。是工具,提升了开发效率和编译速度,但在极端文件路径环境下有风险。理解了这两者的差异,你就能在架构设计时,根据目标平台和项目规模做出最理性的选择。聊完了代码的物理组织,我们要回到语言的逻辑核心。有一个关键字,它和static一样有着复杂的历史,但在现代 C++ 中,它几乎只剩下一个重要的身份——解决重复定义问题。➡️inline的多重身份 (The Multiple Identities of Inline): 不仅仅是建议。
2025-12-19 16:45:18
611
原创 《智能座舱时代:车载HMI渲染引擎的选型、架构与实践》第 3 章:Unity for Automotive:快速迭代、生态与车规级改造
Unity 在车载领域的广泛应用,标志着 HMI 开发进入了“体验驱动”的新阶段。它是目前平衡性极佳的选择,拥有极高的开发效率、完善的工具链以及对 AR-HUD 等空间计算技术的良好支持。对于追求快速迭代、希望利用成熟游戏开发人才链、且需要跨平台(如同时支持 Android 和 QNX)的项目,Unity 表现出了极强的适配性。当然,Unity 并非唯一的终点。在追求极致物理光影和 AAA 级视觉震撼的项目中,展现了极强的统治力;而在追求极致资源控制和 ASIL 级原生安全的场景下,Kanzi。
2025-12-19 16:29:15
571
原创 《智能座舱时代:车载HMI渲染引擎的选型、架构与实践》第 4 章:Kanzi:专业 HMI 引擎的效率与实时性优势
在第一篇提到的“不可能三角”中,Kanzi 明显向功能安全和实时确定性倾斜。维度Kanzi 的表现功能安全卓越。原生支持 ASIL-B 级隔离与校验。实时确定性极高。无 GC,完美支持 QNX 调度。高性能/高保真中等偏上。虽然不及 UE 的影视级特效,但足以胜任主流 3D HMI。Kanzi 告诉我们:在资源受限的嵌入式环境中,精简和克制才是通向稳定和安全的最短路径。
2025-12-19 16:09:51
915
原创 渲染管线本质谈第 06 讲:可编程剔除 2025 终极方案:Meshlet Culling 在所有平台的真实性能对比
PC 端通过纯粹的算力碾压,已经实现了“无视三角形计数”的自由;而移动端则通过**更激进的遮挡剔除(Hi-Z)**来换取有限的显存带宽节省。
2025-12-19 15:17:08
505
原创 办公室中的Python课 P06 【精准检索】字典:像查通讯录一样管理数据
列表:有序,像排队,适合存一串相似的东西(如纯名字)。字典:无序但精准,像档案,适合存属性复杂的东西(如个人资料)。下一篇 (P07)条件判断 (if-else)。有了它,你的代码就有了“大脑”,能够根据不同的情况(如:如果工资大于 5000 就扣税,否则不扣)做出不同的决定!
2025-12-19 14:49:01
238
原创 办公室中的Python课 P08 【效率巅峰】循环语句:解放双手的重复艺术
for:已知次数或已知名单时用。while:条件触发时用。:循环的指挥棒。[下一篇 (P09),我们将学习如何把这些零散的代码封装成函数 (Function)。如果你的一段代码经常要用到,把它变成一个“按钮”(函数),以后只需点一下名字就能运行!**👉 想要让你的代码变得模块化、可复用吗?让我们进入函数的世界!
2025-12-19 14:42:59
695
原创 《你真的了解C++吗》No.009:static的四个意义——上下文决定论
上下文影响对象核心含义关键点函数内部局部变量生命周期延长存储在静态区,只初始化一次。类内部成员变量/函数共享与归属属于类而非对象,无this指针。文件全局全局变量/函数可见性限制内部链接,对链接器不可见。一句话记住static在函数里,它是“持久化”。在类里,它是“共享化”。在文件里,它是“私有化”。既然提到了文件作用域和编译单元,我们必须聊聊 C++ 代码组织的最基本形式——头文件。为什么我们总是要写那几行奇怪的#ifndef?真的能完全替代它吗?➡️。
2025-12-19 14:35:40
753
原创 《灵足之脑:大模型驱动双足机器人全栈技术实战系列》第 2 篇:双足机器人的物理奥义 —— 移动效率与稳定性的极致博弈
对于一个健康的人类成年人来说,行走就像呼吸一样自然。然而,从控制理论的角度来看,双足行走是一项极其复杂的任务。相比于四足机器人(如波士顿动力的 Spot)天生拥有的“静态稳定”基座,双足机器人在大部分时间内都处于**“受控跌落”**的状态。本篇将深入探讨双足机器人的物理底层逻辑,理解为什么双足形态是具身智能中最具挑战性的硬核课题。
2025-12-19 14:30:19
463
原创 《智构空间:AIOS 与全时域 3D 交互范式》第 01 篇:去中心化 OS 内核 —— 从微内核向 AI 驱动的自组织内核演进
在传统的操作系统(如 Android 依赖的 Linux 内核)中,是基于红黑树的确定性算法。它的核心逻辑是vruntime:系统总是选择虚拟运行时间最小的任务来执行。CFS 是一种“语义盲视”的公平。它并不理解进程背后的价值。当用户在 3D 空间中滑动窗口时,负责渲染光影的进程和负责后台同步邮件的进程,在内核眼中只是两个不同的优先级数值。这种对语义的无知,导致 CPU 周期在关键时刻被平庸的任务摊薄,造成了移动设备上难以根除的微卡顿。我们将内核从“资源管家”升级为“语义先知”。
2025-12-19 11:19:55
864
原创 【计算的脉络:从硅片逻辑到高并发抽象】第 2 篇:现代 CPU 微架构:流水线、超标量与乱序执行的代价
如果说第一篇讲述的是指令重排的“表象”,那么本篇将带你进入 CPU 的内部,拆解那些为了换取性能而设计的复杂“机关”。
2025-12-19 10:49:59
677
原创 设计模式[13]——责任链模式一分钟彻底说透
将请求沿着一条“链”传递,每个处理者决定自己处理或交给下一个,避免请求发送者和接收者之间的直接耦合。
2025-12-19 10:39:06
213
原创 《智构空间:AIOS 与全时域 3D 交互范式》第 0 篇:前言 —— 触摸语义的厚度
智构空间:AIOS 与全时域 3D 交互范式》不只是一部技术预测报告,它更是一份关于数字生命感的沉思录。在这 53 篇的探索中,我们将见证“界面”这一传统概念的彻底消融。取而代之的,是一个能够呼吸、感知并伴随人类意图实时涨落的全时域交互场。当人类的思维闪念与机器的底层渲染实时交织,手机将不再是我们手中冷冰冰的物件,而是我们意识向数字维度的自然延伸。欢迎来到这片由算力织成的梦境,欢迎来到交互的终局。
2025-12-18 17:05:54
557
原创 《灵足之脑:大模型驱动双足机器人全栈技术实战系列》第 1 篇:具身智能引论 —— 从图灵测试到“物理图灵测试”的飞跃
具身智能不仅仅是“给 AI 装上身体”。其核心在于智能是对环境的适应性行为,这种智能产生于大脑、身体与环境三者之间的实时交互耦合。感知(Perception):不仅仅是视觉识别,而是包含本体感觉(脚踩地面的压力)、空间感(身体在环境中的位置)的多模态融合。决策(Reasoning):大模型在此处充当逻辑引擎,将复杂的语义指令(如“去帮我拿一份轻点的早餐”)转化为物理世界的行动计划。行动(Action):这是最难的一步。它要求机器人通过电机扭矩的精确输出,克服重力、摩擦力和惯性,完成预定任务。
2025-12-18 16:31:53
294
原创 《灵足之脑:大模型驱动双足机器人全栈技术实战系列》第 0 篇:开启具身智能的“奥德赛” —— 前言与通识
在人工智能的长河中,我们经历了从逻辑符号化到大规模统计学习的跨越。2023 年起,以 GPT 为代表的大语言模型(LLM)赋予了机器前所未有的语义理解与逻辑推理能力——这标志着“数字大脑”的成熟。然而,真正的智能需要在物理世界中感知、交互、演化。作为人类形态的延伸,是具身智能(Embodied AI)最复杂、也最迷人的载体。将大模型的泛化能力与双足机器人的动力学控制相结合,是通往通用人工智能(AGI)的最后一块拼图。
2025-12-18 16:25:15
418
原创 《你真的了解C++吗》No.008:volatile——编译器优化的止步
volatile解决的是编译器优化带来的问题。Mutex解决的是 CPU 乱序执行和多线程并发带来的问题。在 C++03 时代,由于缺乏标准的原子库,开发者确实经常滥用volatile配合特定的编译器扩展(如 MSVC 的volatile在某些版本下确实提供了内存屏障)来进行多线程编程。但在现代 C++ 标准下,请把volatile留给硬件驱动和信号处理,把多线程任务交给。变量前面除了const和volatilestatic。但你知道吗?static。
2025-12-18 15:09:36
879
原创 《Unreal 对 C++ 做了什么》系列 05. UFUNCTION:让函数在引擎内可见 (RPC, Exec, Blueprint)
UFUNCTION 类型实现后缀是否有 Thunk (exec)核心逻辑流无有VM -> Thunk -> C++ 原生函数有原名函数 -> (判断) -> 蓝图或 C++ Impl无实现有原名函数 -> 直接丢给 VM 执行蓝图有原名函数 -> 网络序列化 -> 远端 Thunk -> ImplUFUNCTION是通过Thunk 函数抹平了强类型 C++ 与动态虚拟机之间的鸿沟。你写下的每一行,都在这套名为“反射”的宏大剧本中扮演着保底逻辑的角色。
2025-12-18 14:44:19
517
原创 《Unreal 对 C++ 做了什么》系列 05. UFUNCTION:让函数在引擎内可见 (RPC, Exec, Blueprint)
特性标准 C++ 函数虚幻 C++ (UFUNCTION可见性仅限代码链接期全局运行时可见,蓝图可识别调用方式内存地址直接跳转支持字符串搜索调用、网络转发调用多态性虚函数virtual支持蓝图重写、C++/脚本混合多态参数传递栈/寄存器传参支持通过反射数据包(Buffer)传参UFUNCTION将 C++ 函数从单纯的指令序列,提升为了引擎可感知的**“事件中心”**。通过它,你不仅能编写逻辑,还能定义逻辑如何在蓝图、网络和编辑器之间流动。
2025-12-18 14:30:51
688
原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第二十篇增一:全局信息的统筹者——GloVe (2014)
作者国籍机构核心贡献美国论文第一作者,推导了共现概率比值与向量空间的关系。美国NLP 领域泰斗,将统计语言学与深度学习结合的领军人物。信息项详情论文题目发表年份2014 年出版刊物EMNLP核心命题词向量的学习不应只靠局部窗口预测,而应该去拟合语料库中单词共现概率的比值(Ratio)。
2025-12-18 13:27:55
795
原创 【计算的脉络:从硅片逻辑到高并发抽象】 第 1 篇:指令重排:编译器与 CPU 联手演的“障眼法”
在计算机的教科书中,我们被告知程序是按顺序执行的。但现实是,底层世界充满了“欺骗”。考虑经典的实验。假设内存中有两个全局变量。从逻辑隔离的角度看,x和y至少有一个应该是1。如果出现了x=0, y=0,意味着在执行 A2 时,A1 还没生效;同时执行 B2 时,B1 也没生效。在现代 Intel i7 或 ARM 处理器上高频运行这段代码,x=0, y=0会以惊人的比例出现。这不是硬件损坏,而是。
2025-12-18 11:18:41
584
原创 【计算的脉络:从硅片逻辑到高并发抽象】 第 0 篇:致读者——在硅片与代码的缝隙中寻找真理
这是一场漫长而孤独的旅程。50 篇内容,意味着我们要跨越几十年的计算演进史,从 Intel 8086 的遗迹一直看到 Apple M4 的统一内存,从 Linux 0.11 的调度器看到现代异构计算的 CXL 协议。如果你厌倦了浮于表面的 CRUD,如果你想知道当你在键盘上敲下回车时,电子是如何在硅片与总线间奔涌并最终编织成逻辑的——欢迎来到,《计算的脉络:从硅片逻辑到高并发抽象》。【计算的脉络:从硅片逻辑到高并发抽象】第 1 篇:指令重排:编译器与 CPU 联手演的“障眼法”
2025-12-18 11:10:01
873
原创 C++ 的本质·第9篇 C++23 与 C++26:编译期安全与未来的终极形态
C++ 的进化从未停止。C++23 在 ABI 稳定性、模块化和标准库的可用性上进一步完善;而下一代 C++26 则聚焦于和,将 C++ 的编译期能力和并发能力推向新的高度。
2025-12-18 10:58:29
590
原创 C++ 析构函数为什么不建议抛出未捕获的异常
问题点后果栈展开时抛异常双重未捕获异常 → 程序强制终止普通析构抛未捕获异常程序终止,资源清理中断违背析构设计初衷析构是“最后清理”,而非“错误报告”最佳实践析构函数内不执行可能抛异常的操作;若必须执行,在析构内部用try-catch捕获并处理(日志/静默);需暴露的错误,通过对象的成员函数(如close())提前检查,让用户在析构前处理。
2025-12-18 10:48:16
279
原创 C++ 的本质·第 10 篇 C++ 的本质总结:为什么它永远不会死
熟练使用各种特性,不被复杂的报错信息劝退。深刻理解RAII零成本抽象和内存模型。明白“为什么这么设计”比“怎么用”更重要。能够像 CPU 一样思考。当你写下一行代码,脑中能浮现出对应的内存布局、缓存命中情况以及可能的汇编指令。Q:既然 C++ 这么难,为什么我们还要用它?A:因为它是唯一一种能在百亿级规模的代码量上,同时提供极致性能、高度抽象和多端兼容的工具。它不保护庸才,但它赋予天才统治硬件的力量。Q:C++ 的未来在哪里?A:在异构计算(Sender/Receiver)和编译期自动化。
2025-12-18 10:34:23
763
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅