Skip to content

cpp lang

c23/src 示例:设计模式与代码意图

这一组示例不是在做经典 GoF 模式全集,而是在演示现代 C++ 里最常用的几类“设计思路”:资源生命周期管理、所有权建模、并发任务组织、泛型抽象、容器与算法分离。

c23/src/raii/main.cpp - 核心模式:RAII(Resource Acquisition Is Initialization) - 设计意图:把资源绑定到对象生命周期,构造时获取,析构时释放。 - 代码重点:Resource 在析构函数里 delete,栈对象离开作用域自动清理;std::vector<Resource> 作用域结束后批量触发析构。 - 实战价值:减少手动 new/delete 出错概率,是异常安全和可维护性的基础。

c23/src/smart_pointers/main.cpp - 核心模式:所有权模式(Unique Ownership / Shared Ownership / Observer) - 设计意图:用类型表达“谁拥有对象、何时释放”。 - 代码重点: - std::unique_ptr 展示独占所有权和 std::move 转移语义。 - std::shared_ptr 展示引用计数共享所有权。 - std::weak_ptr 展示非拥有观察者,避免循环引用导致的内存泄漏。 - 实战价值:相比裸指针,智能指针把资源管理规则写进类型系统,代码审查和重构都更稳。

c23/src/concurrency/main.cpp - 核心模式:Thread-per-task + Future/Promise 风格异步 - 设计意图:把并发执行与结果同步拆开,既能并行做事,也能在需要时拿结果。 - 代码重点: - std::thread + join() 是显式线程生命周期管理。 - std::async + std::future::get() 是任务提交与结果获取分离。 - std::lock_guard<std::mutex> 通过作用域自动加解锁,属于 RAII 在并发中的应用。 - 实战价值:这是构建撮合、行情处理、风控并发模块的基本拼装方式。

c23/src/templates/main.cpp - 核心模式:泛型编程(Generic Programming) - 设计意图:把“算法/容器逻辑”和“具体类型”解耦,用模板复用实现。 - 代码重点:函数模板 print/add 与类模板 Box<T>,编译期按类型实例化。 - 实战价值:在不牺牲性能的前提下复用代码,是 STL 与现代 C++ 库设计的核心方法。

c23/src/containers/main.cpp - 核心模式:STL 惯用法(Container + Algorithm 分离) - 设计意图:数据结构负责存储,算法通过迭代器操作容器,职责清晰。 - 代码重点:std::vector 动态数组操作,std::map 有序键值管理,std::sort/std::find 体现算法与容器解耦。 - 实战价值:让代码更标准、更易读,也更容易替换底层容器而不改业务算法。

总结

c23/src 这套代码整体展示的是现代 C++ 的实践范式: - 用 RAII 和智能指针做可靠内存管理。 - 用标准并发工具构建可控异步执行。 - 用模板和 STL 写高复用、低开销、可维护的通用代码。

yet another build system: pixi

new, growing, modern mindset, easy to setup.

C++ 语言核心 (Core C++)

内存管理: 堆栈区别、RAII 模式、智能指针 (unique/shared/weak)、内存泄漏与内存池。

现代 C++ (C++11/14/17/20): Lambda 表达式、Move 语义与右值引用、auto、constexpr、模板元编程 (TMP)、Concepts。

面向对象: 虚函数表 (Vtable) 底层机制、深浅拷贝、多态、菱形继承问题。

STL 深度掌握: 常用容器(vector, deque, unordered_map)的底层实现与时空复杂度。

异常处理: 异常安全保证(Exception Safety Guarantees)。

高性能计算与底层优化 (Low Latency & HPC)

多线程与并发: std::thread、原子操作 (std::atomic)、无锁编程 (Lock-free)、内存模型 (Memory Barrier/Ordering)、死锁避免。

计算机体系结构: CPU 缓存(L1/L2/L3 Cache Line)、伪共享 (False Sharing)、分支预测优化、SIMD 指令集 (AVX/SSE)。

低延迟技术: 绑定 CPU 核心 (CPU Affinity)、上下文切换优化、零拷贝 (Zero-copy)、网络栈优化 (Kernel Bypass/mmap)。

编译优化: 内联函数、静态链接与动态链接、编译器优化选项。

数据结构与算法 (Data Structures & Algorithms)

基础算法: 快速排序、二分查找、堆排序(常用于订单簿维护)。

高级结构: 跳表 (Skip List)、红黑树、无锁队列 (Lock-free Queue)、哈希表碰撞处理。

量化特定: 时间序列处理、滚动窗口统计(Moving Window)、快速求和/求均值。

交易系统与数学 (System & Math)

设计模式: 单例模式、观察者模式(行情推送)、策略模式、工厂模式。

网络通信: TCP/UDP 协议栈、FIX 协议、二进制传输协议。

数据处理: 浮点数精度问题、定点数运算。