<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WM2101的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/WM2101</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; WM2101]]></copyright><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 15 RAII&智能指针&构建C++工程]]></title><link>https://blog.csdn.net/WM2101/article/details/156130587</link><guid>https://blog.csdn.net/WM2101/article/details/156130587</guid><author>WM2101</author><pubDate>Sun, 21 Dec 2025 16:53:43 +0800</pubDate><description><![CDATA[本文介绍了C++中的异常处理和RAII（资源获取即初始化）编程范式。主要内容包括：1）异常处理机制及其在多处代码路径中可能引发的异常情况分析；2）RAII的核心思想，通过构造函数获取资源、析构函数自动释放资源来避免内存泄漏；3）RAII在动态内存、文件操作和线程锁等场景的应用示例；4）三种智能指针（unique_ptr、shared_ptr和weak_ptr）的基本概念和使用方法。文章强调RAII是C++资源管理的基石，能有效解决手动资源管理导致的泄漏问题，建议用智能指针替代显式的new/delete操作。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 14 类型安全 & `std::optional`]]></title><link>https://blog.csdn.net/WM2101/article/details/156130188</link><guid>https://blog.csdn.net/WM2101/article/details/156130188</guid><author>WM2101</author><pubDate>Sun, 21 Dec 2025 15:57:54 +0800</pubDate><description><![CDATA[本文探讨了C++中的类型安全和std::optional的用法。类型安全指编程语言防止类型错误的能力，通过示例说明未检查容器空状态和空指针解引用会导致未定义行为。介绍了std::optional(C++17)作为安全处理可能缺失值的方案，包含.value()、.value_or()和.has_value()等方法。最后讲解了C++23引入的Monadic操作(transform、and_then、or_else)，它们通过链式调用自动处理值存在与否的情况，避免显式条件判断，使代码更简洁安全。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 13 特殊成员函数（SMFs）]]></title><link>https://blog.csdn.net/WM2101/article/details/156105608</link><guid>https://blog.csdn.net/WM2101/article/details/156105608</guid><author>WM2101</author><pubDate>Sat, 20 Dec 2025 10:55:19 +0800</pubDate><description><![CDATA[C++中的特殊成员函数包括6个与对象生命周期管理和值传递相关的函数：默认构造函数、析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数和移动赋值运算符。这些函数会在未显式定义且程序需要时自动生成。拷贝构造和拷贝赋值需要实现深拷贝以避免指针共享问题，而移动操作则通过转移资源所有权提高效率。使用delete关键字可以禁用特定特殊成员函数，防止不安全的对象操作。对于包含不可赋值成员（如const或引用）的类，必须通过初始化列表进行初始化。特殊成员函数的合理使用对资源管理和性能优化至关重要。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 12 运算符重载]]></title><link>https://blog.csdn.net/WM2101/article/details/156105348</link><guid>https://blog.csdn.net/WM2101/article/details/156105348</guid><author>WM2101</author><pubDate>Sat, 20 Dec 2025 09:32:06 +0800</pubDate><description><![CDATA[本文介绍了C++中运算符重载的概念与应用。运算符重载允许自定义类像内置类型一样使用运算符，可通过成员或非成员函数实现。非成员重载更灵活，但需配合友元机制访问私有成员。文章强调运算符应遵循最小惊讶原则，保持语义清晰，并建议使用相反规则（如同时定义==和!=）。通过StanfordID类的示例展示了运算符重载的具体实现方法，包括比较运算符的定义和友元函数的使用。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 11 Lambdas表达式]]></title><link>https://blog.csdn.net/WM2101/article/details/156098053</link><guid>https://blog.csdn.net/WM2101/article/details/156098053</guid><author>WM2101</author><pubDate>Fri, 19 Dec 2025 22:58:34 +0800</pubDate><description><![CDATA[来。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 10 函数模板（Function Templates）]]></title><link>https://blog.csdn.net/WM2101/article/details/155915531</link><guid>https://blog.csdn.net/WM2101/article/details/155915531</guid><author>WM2101</author><pubDate>Sun, 14 Dec 2025 18:13:44 +0800</pubDate><description><![CDATA[本文介绍了C++函数模板的核心概念与应用。主要内容包括：通过min函数示例展示模板替代函数重载的优势；详细讲解显式/隐式实例化的使用方法及注意事项；针对不同类型参数的解决方案（双模板参数+auto返回值）；迭代器中的模板应用实例。特别探讨了C++20引入的concept机制，用于提前检测类型约束问题。最后深入解析了可变参数模板的实现原理，通过递归展开处理任意数量参数，并展示了异构参数的处理能力。全文系统性地呈现了模板编程从基础到进阶的关键技术点。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 9 类模板（Class Templates）]]></title><link>https://blog.csdn.net/WM2101/article/details/155914611</link><guid>https://blog.csdn.net/WM2101/article/details/155914611</guid><author>WM2101</author><pubDate>Sun, 14 Dec 2025 16:54:10 +0800</pubDate><description><![CDATA[本文介绍了C++模板的基本概念及其在类模板中的应用。通过将int_vector、double_vector等相似逻辑的类合并为单一的vector模板，展示了模板如何实现代码复用和类型抽象化。重点讨论了类模板的声明、实现方式（包括仅头文件库和显式实例化方法），以及模板实例化后生成完全独立类型的特点。同时指出了模板使用可能导致程序体积增大和编译时间延长的问题，并比较了模板类与普通类在编译和运行时的差异。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 8 继承]]></title><link>https://blog.csdn.net/WM2101/article/details/155907817</link><guid>https://blog.csdn.net/WM2101/article/details/155907817</guid><author>WM2101</author><pubDate>Sun, 14 Dec 2025 16:12:11 +0800</pubDate><description><![CDATA[本文介绍了面向对象编程中的继承机制及其实现。继承允许一个类（子类）从另一个类（基类）继承属性和方法，支持IS-A关系、动态多态性和可扩展性。文章通过几何形状类的示例展示了继承的实现方式，包括纯虚函数的使用。同时讨论了三种继承类型（公有、保护和私有）及其访问权限差异，重点指出公有继承最适合IS-A关系。针对多重继承中的菱形问题，提出虚拟继承解决方案。最后通过实例说明继承如何减少代码冗余并提高可维护性，展示了继承在对象交互设计中的优势。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 7 类]]></title><link>https://blog.csdn.net/WM2101/article/details/155637288</link><guid>https://blog.csdn.net/WM2101/article/details/155637288</guid><author>WM2101</author><pubDate>Mon, 08 Dec 2025 12:00:48 +0800</pubDate><description><![CDATA[本文介绍了C++中类的核心概念与应用。首先对比了C语言与C++在面向对象编程上的差异，强调类实现了数据与方法的封装。详细解析了类与结构体的区别，指出类具有访问控制机制。重点阐述了类的设计要素：构造函数（包括默认构造、参数构造和this关键字的使用）、私有成员变量、公有成员函数接口以及析构函数。通过StanfordID类的完整示例展示了类定义与实现的典型结构（头文件与源文件分离）。最后说明了C++类对象的存储机制，指出数据存储在对象中而函数单独存储的特点。全文系统性地呈现了C++类的基础知识体系。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 6 迭代器]]></title><link>https://blog.csdn.net/WM2101/article/details/155632108</link><guid>https://blog.csdn.net/WM2101/article/details/155632108</guid><author>WM2101</author><pubDate>Sat, 06 Dec 2025 11:36:53 +0800</pubDate><description><![CDATA[迭代器是C++中用于遍历容器元素的通用接口，其行为类似于指针但更通用。所有标准容器都提供begin()和end()方法返回迭代器，分别指向首元素和&quot;尾后&quot;位置。迭代器支持解引用(*it)、递增(++it)和比较(==)等操作，使得不同容器的遍历方式统一。前缀++it直接返回更新后的迭代器，而后缀it++需保存旧值再递增。迭代器抽象了底层数据结构差异，让开发者无需关心具体实现就能遍历各种容器。使用时需注意不要解引用或递增尾后迭代器，否则会导致未定义行为。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 5 内存与指针]]></title><link>https://blog.csdn.net/WM2101/article/details/155504141</link><guid>https://blog.csdn.net/WM2101/article/details/155504141</guid><author>WM2101</author><pubDate>Tue, 02 Dec 2025 22:51:03 +0800</pubDate><description><![CDATA[程序运行时，操作系统会为其分配地址空间，包含共享内存、栈、堆、全局变量和指令段等区域。栈用于存储函数调用和局部变量，遵循先进后出原则，但空间有限且变量生命周期受限。堆则支持动态内存分配，克服了栈的局限性，但需要手动管理且性能较低。指针是C++中访问内存地址的特性，存储对象的地址并允许直接操作内存。指针类型T*指向类型为T的对象，解引用可获取实际值。栈溢出和内存管理是使用指针时需注意的关键问题。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 4 容器（关联式容器）]]></title><link>https://blog.csdn.net/WM2101/article/details/155498511</link><guid>https://blog.csdn.net/WM2101/article/details/155498511</guid><author>WM2101</author><pubDate>Tue, 02 Dec 2025 17:16:29 +0800</pubDate><description><![CDATA[本文介绍了C++中的关联式容器，包括map和set等有序容器的使用要求与操作方法。重点说明了容器元素必须支持比较运算符或自定义比较函数，详细列举了map的常见操作如插入、查找、删除等，并指出使用[]访问可能意外插入默认值的特性。文章还对比了三种自定义比较方式：重载运算符、函数对象和lambda表达式，为开发者提供了灵活的选择方案。最后提醒了访问不存在的键可能导致意外插入的问题。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 4 容器（STL与序列容器）]]></title><link>https://blog.csdn.net/WM2101/article/details/155497845</link><guid>https://blog.csdn.net/WM2101/article/details/155497845</guid><author>WM2101</author><pubDate>Tue, 02 Dec 2025 16:25:34 +0800</pubDate><description><![CDATA[本文介绍了C++标准模板库(STL)的核心概念和常用容器。STL主要包括容器、算法和迭代器三大部分，其中容器分为序列容器和关联容器。重点讲解了序列容器中的std::vector和std::deque： std::vector是最常用的动态数组，支持随机访问，但在前端插入效率较低 std::deque是双端队列，支持高效的前后端插入/删除操作 文中比较了两者的实现机制和适用场景，并给出了使用建议，如优先使用范围for循环和const auto&amp;避免拷贝 此外还区分了STL的组成部分和非STL的标]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 3 流]]></title><link>https://blog.csdn.net/WM2101/article/details/155497165</link><guid>https://blog.csdn.net/WM2101/article/details/155497165</guid><author>WM2101</author><pubDate>Tue, 02 Dec 2025 15:54:07 +0800</pubDate><description><![CDATA[本文介绍了C++中的流(Stream)机制，重点讲解了输入输出流的抽象概念和具体应用。主要内容包括：1)流的基本概念，如std::cout和std::cin分别作为输出流和输入流的实例；2)stringstream的使用方法，展示了如何将字符串作为流处理，以及getline()函数的用法；3)输出流的详细介绍，包括std::cout、std::endl与'\n'的区别，以及cerr和clog的不同用途；4)文件流的操作，通过std::ofstream和std::ifstream示例演示了文件的读写操作。文章]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 2 初始化与引用]]></title><link>https://blog.csdn.net/WM2101/article/details/155490185</link><guid>https://blog.csdn.net/WM2101/article/details/155490185</guid><author>WM2101</author><pubDate>Tue, 02 Dec 2025 12:01:22 +0800</pubDate><description><![CDATA[本文介绍了C++中的三种初始化方式：直接初始化（C++98）、统一初始化（C++11）和结构化绑定（C++17）。直接初始化存在窄化转换问题，统一初始化通过{}语法强制类型安全，但可能与函数重载规则冲突。结构化绑定支持从固定大小数据结构中解构变量。此外，文章还讨论了引用传递与值传递的区别，以及左值和右值的概念，强调右值是临时值不能通过引用传递。]]></description><category></category></item><item><title><![CDATA[C++基础：Stanford CS106L学习笔记 1 类型与结构]]></title><link>https://blog.csdn.net/WM2101/article/details/155488761</link><guid>https://blog.csdn.net/WM2101/article/details/155488761</guid><author>WM2101</author><pubDate>Tue, 02 Dec 2025 11:29:21 +0800</pubDate><description><![CDATA[本文介绍了C++的类型系统和结构体特性。在类型系统方面，C++采用静态类型，变量类型一旦确定不可更改，与Python的动态类型形成对比。静态类型能提高效率并减少运行时错误。文章还介绍了using类型别名、auto类型推断以及函数重载等现代类型特性。在结构体方面，展示了如何定义和使用结构体，以及使用std::pair模板简化多值返回的实现方式。通过对比Python和C++的代码示例，突出了C++在类型安全性和编译时检查方面的优势。]]></description><category></category></item><item><title><![CDATA[信号与线性系统翻转课堂笔记20——系统函数与信号流图]]></title><link>https://blog.csdn.net/WM2101/article/details/135236299</link><guid>https://blog.csdn.net/WM2101/article/details/135236299</guid><author>WM2101</author><pubDate>Sun, 31 Dec 2023 16:32:41 +0800</pubDate><description><![CDATA[信号与线性系统翻转课堂笔记20——系统函数与信号流图]]></description><category></category></item><item><title><![CDATA[信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性]]></title><link>https://blog.csdn.net/WM2101/article/details/135236263</link><guid>https://blog.csdn.net/WM2101/article/details/135236263</guid><author>WM2101</author><pubDate>Sun, 31 Dec 2023 09:35:53 +0800</pubDate><description><![CDATA[信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性]]></description><category></category></item><item><title><![CDATA[信号与线性系统翻转课堂笔记18——z变换的应用]]></title><link>https://blog.csdn.net/WM2101/article/details/135236222</link><guid>https://blog.csdn.net/WM2101/article/details/135236222</guid><author>WM2101</author><pubDate>Sat, 30 Dec 2023 16:02:13 +0800</pubDate><description><![CDATA[信号与线性系统翻转课堂笔记18——z变换的应用]]></description><category></category></item><item><title><![CDATA[信号与线性系统翻转课堂笔记17——z变换及其性质]]></title><link>https://blog.csdn.net/WM2101/article/details/135174399</link><guid>https://blog.csdn.net/WM2101/article/details/135174399</guid><author>WM2101</author><pubDate>Sat, 30 Dec 2023 09:44:20 +0800</pubDate><description><![CDATA[信号与线性系统翻转课堂笔记17——z变换及其性质]]></description><category></category></item></channel></rss>