学习笔记
共 301 篇笔记,按目录组织,左侧树可展开浏览。
- 301篇
- 5分类
- 0标签
笔记流 301
自动关联目录:8 Strategy 策略模式把一组可互换的算法各自封装,让它们在运行时可以相互替换。 原笔记点出了最实用的落地场景:与 if-else / switch-case 的改造紧密结合——判断依据是"这些分支是否足够相似…
自动关联目录:7 State 状态模式把"与状态相关的行为"各自封装进一个状态对象,状态切换时换掉这个对象,对外接口保持不变。 目的是消灭 switch (state):把散布在十几个方法里的状态判断,收敛成"…
自动关联目录:9 Template Method 模板方法定义算法/流程的骨架(公共部分),把可变步骤延迟到子类实现。 这是最"润物细无声"的一个模式——原笔记说得对:非常常见的做法,一般基类都会这么干,多数人用着它却不…
自动关联目录:C# 定位:.NET 生态的主力语言,语法现代、工具链完善,代价是运行在虚拟机上、带 GC。适合写编辑器工具、内部工具链、服务端,也是 Unity 的脚本语言。 与 C++ 的取舍:C# 用运行时开销换开发效率与内存安全。不要…
自动关联目录:C&C++ 值得投入的理由:C++ 是少数能让你精确控制内存布局和运行时开销的语言。游戏引擎、浏览器、数据库、推理框架的核心几乎都用它写,不是因为语法好,而是因为没有别的语言能在同一量级上同时给出性能与可控性。 代价也…
实例化对象 影响因素 虚函数 由虚表指针指向,所有对象共享。 非虚函数 所有对象共享。 非静态数据成员 对象大小的决定因素 静态函数 所有对象共享。 静态数据成员 内存对齐 可以手动指定。32位、64位不同。 class Abstract …
自动关联目录:STL 容器与分配器 选容器的本质是选内存布局:连续、链式、哈希、树。布局决定了缓存命中率,而缓存命中率在现代 CPU 上往往比算法复杂度更决定性。 一句话定位:默认 std::vector;只有明确的理由才换。绝大多数&qu…
源码 #include <iostream> template<typename ItemType> class Queue { private: struct Node { …
自动关联目录:崩溃与调试 C++ 的崩溃是"内存已经被写坏了,只是现在才发现"。崩溃现场(那一行代码)常常不是问题发生的地方,这是它比别的语言难查的根本原因。 一句话定位:先确定"坏在哪一类",再选工…
自动关联目录:并发与内存序 并发问题的根源是:编译器、CPU、缓存都会重排你的代码,只要"单线程看起来一样"。多线程崩溃,几乎都是因为你假定了某种顺序,而没人向你保证过这个顺序。 一句话定位:用 mutex 就不用管内存…
自动关联目录:模板与编译期 模板不是"泛型",是"编译期生成代码"。理解这一点,就能解释它的全部特性:错误信息难读、头文件必须可见、改一行重编一大片、以及"零成本抽象"为什么成立。…
自动关联目录:移动语义与 RAII C++ 里"资源该什么时候释放"这件事,答案是:靠作用域结束时的析构函数。这就是 RAII。移动语义则是让"资源的转移"变得便宜。 一句话定位:std::move …
自动关联目录:Code Style 代码风格的意义不在于好看,而在于让差异变得显眼:当所有人写法一致时,评审时唯一凸显出来的就是"这段代码真的做了不一样的事"。 命名 对象 约定 例子 类型 / 类 大驼峰…
自动关联目录:Cuda CUDA 编程的全部难点可以概括成一句话:GPU 有成千上万个线程,但内存访问比计算慢得多,绝大多数 kernel 慢在等数据而不是算不完。 所以优化顺序永远是: 先让访存变好(合并、复用、减少搬运) 再让并行度变…
自动关联目录:1 Adapter 适配器把一个类的接口转换成客户端期望的另一个接口,让原本因为接口不匹配而不能一起工作的类可以协作。 它是典型的事后补救模式:现存对象已经写好且能跑,只是新环境的接口要求它不满足。 结构 角色 职责 …
自动关联目录:1 Creational 创建型模式解决同一个问题:new 是编译期绑定的硬编码。直接 new 一个具体类,就把"用什么实现"钉死在代码里了,之后想替换只能改调用方。 做法是绕开 new:把创建过程交给工厂…
自动关联目录:1 Factory Method 工厂方法 工厂方法把「实例化哪一个类」的决策从调用方挪走:定义一个用于创建对象的接口,让子类决定实例化哪一个类,从而把 new 的编译期绑定推迟到运行期。 它省的不是一行 new,而是切断调用…
自动关联目录:2 Abstract Factory 抽象工厂是工厂方法的"进阶级":当一组产品必须成套使用(相互依赖、服务于同一个任务)时,把它们合并到同一个工厂创建。 单个工厂只保证"这个对象是对的"…
自动关联目录:3 Builder Builder 解决的是"复杂对象的构造过程很稳定,但每一步的表示很多变":把构建过程与表示分离,让同样的构建流程产出不同的结果。 原笔记里抓住了最关键的一点——它本质是模板方法在构造阶…
自动关联目录:4 Prototype 原型模式用"拷贝一个已有实例"来代替"new 一个":当对象的创建成本远高于拷贝成本,或者需要记住/复现某个状态时,它才划算。 前提是对象已经有一个接近目标状态的…