C++编程实战:一套例题源码带你跑通类、多态与模板
简介《C程序设计清华大学郑莉》教材配套的例题源代码合集面向正在自学C或配合课程上机练习的初学者可逐章对照教材运行示例省去手动录入代码的麻烦。资源共227个文件以149个cpp源文件和37个h头文件为主体另含dsw/dsp工程文件、图标及资源脚本压缩包仅1.33MB轻量精炼。代码内容覆盖C基础语法、类与对象、构造析构、运算符重载、模板、STL容器与算法、文件读写及异常处理等核心主题例题结构清晰便于理解面向对象设计思路也可直接复用或改造成课后作业。目前已有413人学习下载适合作为啃教材、备战期末或准备上机实验的参考。1. 一套C入门代码包比啃语法书快得多接触过《C程序设计》例题源代码的人大多都有同一个感受书上每个语法点拆开都能看懂一合起来写完整程序就不知道怎么下手。这套资源就是把教材里每一章的示例程序单独摘出来整理成一份可以编译运行的源码集合从最基础的类与对象、继承派生到虚函数多态、模板、STL 容器每个知识点都有一个能直接跑出结果的独立小例子。它解决的是“看懂了但写不出来”的断层问题。适合三类人自学 C 缺代码范例的、期末考试前想快速过一遍重点的、以及刚带完基础编程课想给学生加配套练习的。它不是视频课也不是 PPT就是纯粹能运行的代码。2. 资源盘点例题源码的目录结构、代码风格与精读优先级2.1 目录结构按章节分层文件名就是索引这套代码最值得肯定的地方是组织方式。它不是把几十个文件堆在一个目录里让你自己猜而是严格按照课程章节分层。解压后你会看到每个章节一个文件夹整体大致是这个思路根目录/ ├── ch01_概述与基础/ ├── ch02_数据类型与表达式/ ├── ch03_程序控制结构/ ├── ch04_函数/ ├── ch05_类与对象/ ├── ch06_继承与派生/ ├── ch07_多态性/ ├── ch08_运算符重载/ ├── ch09_模板/ ├── ch10_输入输出流/ └── ch11_STL与异常处理/具体命名以你拿到的版本为准但分层逻辑基本一致。文件名通常带着章节编号和示例功能说明比如5_3_时钟类.cpp这种风格。即使某个文件被单独拷出来发给别人也不会搞混它属于哪一节。这种分层带来的直接好处是定位快你想验证“引用传递到底传了什么”直接进函数章节找对应文件想复习多态进多态章节目录逐个看虚函数示例不需要在几十个文件里靠内容猜名字。从内容覆盖面上看这套例题踩中了 C 课程的全部主干。我整理了一张对照表你可以拿它对着自己的教材章节快速定位课程模块例题覆盖点跑起来之后你能看到什么基础语法数据类型、表达式、控制结构循环、判断、输入输出的基本组合函数值传递、引用传递、重载、内联实参是否被函数修改的不同表现类与对象构造函数、析构、拷贝构造、静态成员对象创建和销毁时的打印顺序继承与派生派生类定义、访问控制、构造顺序基类和派生类构造函数的先后调用多态性虚函数、抽象类、虚析构同一接口对不同类型的差异化输出运算符重载复数运算、赋值、输出流自定义类型支持 - 等运算符模板与STL函数模板、类模板、vector/map同一套代码处理不同数据类型输入输出流格式化输出、文件读写文件内容读入内存再写回磁盘绝大多数示例都是单文件自包含的——类定义和 main 函数写在一起没有跨文件的头文件依赖。这意味着你可以把任意一个 .cpp 拖进编译环境直接跑也方便单独做实验改动。拿到手后我建议先不急着逐个打开而是把目录完整浏览一遍在纸上画出“哪一章对应哪些示例”这个动作花不了十分钟但能让你后续每一次查找都快很多。2.2 代码风格教材级命名但带着明显的年代感看这份代码你会立刻感觉到一种典型的“教材代码风格”类名大写开头成员变量用下划线或驼峰中文注释齐全每个示例程序都尽量短小——短的十几行长的不过百行确保一次只演示一个语法点。这种风格对新手特别友好变量名都是 score、count、name 这类直白词不需要先理解作者的命名体系就能直接读代码。和真实项目代码相比这里没有复杂的目录分层、没有宏、没有跨文件回调所有注意力都集中在语法点上。但另一方面这套代码有明显的年代特征。字符串处理可能还在用char[]或char*动态内存用new/delete手动管理循环变量也可能声明在循环外类似下面这种写法char name[20]; // 固定长度的字符数组不灵活 int* p new int(10); // 手动在堆上分配内存 delete p; // 用完必须手动释放这些写法放到今天不算最佳实践但在教学场景下反而是个优势你能更清楚地看到变量的生命周期和内存管理的边界在哪里。我的建议是初学阶段先按原代码跑通不要急着把char*改成string、把new/delete改成智能指针。等把对象生命周期和内存机制真正理解了再回头做现代风格的改造练习效果比一上来就学“最佳实践”好得多。2.3 时间有限的话哪些章节最值得精读如果两周内要考试或者你只有周末两天的时间我的优先级建议是这样类与对象、继承与派生、多态性这三章的例题值得反复读三遍以上它们是 C 面向对象的骨架统考和面试都绕不开。运算符重载和模板的例题建议亲手重写一遍不要只看——重载的operator和友元函数怎么搭配、模板的编译期实例化行为光看是看不透的必须自己写一遍才能在报错里体会。基础语法章节的例题快速过一遍即可函数章节重点做一下“值传递和引用传递对比”那个示例其他的略过不心疼。3. 把例题跑起来g、Visual Studio 与 VS Code 三种编译调试方案3.1 g 命令行编译最省事的单文件验证不管什么平台只要能装上 g跑这套单文件例题就是一条命令的事。Linux 和 macOS 自带或一条命令安装Windows 装 MinGW 之后同样能用。编译时我建议显式指定 C 标准避免编译器按老标准解析导致莫名报错g -stdc11 -Wall -o demo demo.cpp ./demo第一行是编译命令第二行运行生成的可执行文件。-stdc11指定按 C11 标准编译这套老代码在 C98 下也能过但用 c11 对各种编译器的兼容性更好-Wall打开全部常见警告初学阶段一定要加能帮你提前看到类型转换、未使用变量这类隐患-o demo指定输出文件名不加的话默认生成 a.out。改完代码想重新编译重新执行第一行即可。文件在子目录里就先cd进去或者把路径写全比如g -stdc11 -o demo ch05/5_3_时钟类.cpp。常用的几个编译参数我列在下面这张表里按需选用参数作用什么时候用-stdc11指定语言标准必须防止老语法解析报错-Wall开启全部常见警告初学必加提前发现隐患-g生成调试信息需要打断点调试时-O2开启编译优化做性能对比实验时如果某个示例由多个文件组成——这种情况在这套资源里很少但也有——那就把所有 .cpp 一起传给 gg -stdc11 -Wall -o demo main.cpp student.cpp teacher.cppg 会把三个源文件分别编译再链接到一起生成一个可执行文件。这里不要自己先手动编译成 .o 再链接那是多余动作单文件项目直接全量编译省事且不容易出错。3.2 Visual Studio把 .cpp 拖进空项目就能跑Windows 上如果你已经装了 Visual Studio不需要手动一个个文件复制粘贴。打开 VS 后新建“空项目”然后把例题 .cpp 文件直接拖进解决方案资源管理器里的“源文件”文件夹。一个工程对应一个章节把该章用到的所有 .cpp 拖进去按 CtrlF5 编译运行。这里有一个容易翻车的地方VS 的 MSVC 编译器对老代码的宽容度和 g 不一样个别示例可能报错。遇到时不要急着改代码先检查项目属性里的语言标准——项目菜单 → 属性 → C/C → 语言 → C 语言标准把它切到“ISO C17 标准”。绝大多数兼容性问题在这一步就能解决。另外VS 默认会把字符集设为 Unicode如果例题里有中文常量字符串输出乱码在属性 → 配置属性 → 常规 → 字符集里改成“使用多字节字符集”运行窗口中文就正常了。3.3 VS Code MinGW一边跑一边看断点的轻量方案不想装完整 IDE 的话VS Code 配 MinGW 是现在最流行的轻量组合。装好 C/C 扩展后在.vscode/tasks.json里配置编译任务{ version: 2.0.0, tasks: [ { type: cppbuild, label: compile, command: g, args: [-g, -stdc11, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension}.exe], group: build } ] }-g生成调试信息没有它断点不会命中${file}是 VS Code 内置变量代表当前打开的源文件路径输出文件和源文件同名后缀改成 .exe。配置好后打开任意例题按 CtrlShiftB 编译按 F5 进入调试。再配合launch.json指定调试程序路径{ version: 0.2.0, configurations: [ { name: C Debug, type: cppdbg, request: launch, program: ${fileDirname}/${fileBasenameNoExtension}.exe, args: [], stopAtEntry: false, cwd: ${fileDirname}, externalConsole: false, MIMode: gdb, miDebuggerPath: gdb, preLaunchTask: compile } ] }program指定要调试的可执行文件路径preLaunchTask指向 tasks.json 里名字为 compile 的任务按 F5 会自动先编译再启动调试externalConsole设为 false 表示用集成终端显示输出。这套方案对学例题最值的地方在于你可以在构造函数、析构函数、虚函数调用这些关键行打断点一行一行看对象真实的创建和销毁过程。编程入门阶段的“看懂”和“看到”完全是两回事断点能让你看到程序内部真正的执行顺序这是单纯看输出结果替代不了的。4. 四条主线知识拆解从对象生命周期到模板实例化的关键机制4.1 类与对象用打印验证构造、析构和拷贝的调用时机类与对象章节的典型示例是一个时钟类完整定义加测试代码通常只有几十行。这类例子的核心看点不在“怎么把时间存下来”而在构造、析构这些特殊函数的调用时机。我拿一个同结构的简化版说明#include iostream using namespace std; class Clock { public: Clock(int h, int m, int s) : hour(h), minute(m), second(s) { cout 构造函数被调用 endl; } ~Clock() { cout 析构函数被调用 endl; } void showTime() const { cout hour : minute : second endl; } private: int hour, minute, second; }; int main() { Clock c(10, 30, 0); c.showTime(); return 0; }逻辑说明构造函数用初始化列表给三个成员赋初值比在函数体里逐个赋值更高效因为初始化列表是“直接初始化”函数体赋值是“先默认构造再赋值”对 int 差别不大对复杂对象差别立现。showTime末尾的const表示该函数不修改成员变量这是 const 成员函数的语法标记。运行结果按“构造函数被调用 → 10:30:0 → 析构函数被调用”的顺序输出栈对象的作用域在 main 结束处结束析构在 return 之后自动执行。参数说明Clock(int h, int m, int s)的三个参数是形参调用时传入的实参被复制给 hour、minute、second。值得动手改的点把 main 里的Clock c(10, 30, 0);改成Clock c;编译器会直接报错。原因是你定义了带参构造后编译器不再自动生成无参构造函数。这一个报错比背十遍“默认构造函数”的定义都管用。再试试定义第二个对象时用一个对象初始化另一个比如Clock d c;默认会调用拷贝构造——你可以先在类里加一个带打印的拷贝构造函数再运行观察它到底什么时候被调用你会看到拷贝构造其实是一个独立于构造和析构的第三个环节。4.2 继承与虚函数去掉 virtual 跑一遍比背定义更直观继承章节的例题通常是一个基类加几个派生类比如形状类派生出圆形和矩形。这类代码的看点在调用行为基类指针指向派生类对象时调用的到底是哪个版本的函数。#include iostream using namespace std; class Shape { public: virtual double area() const { return 0; } virtual ~Shape() {} }; class Circle : public Shape { public: Circle(double r) : radius(r) {} double area() const override { return 3.14159 * radius * radius; } private: double radius; }; class Rectangle : public Shape { public: Rectangle(double w, double h) : width(w), height(h) {} double area() const override { return width * height; } private: double width, height; }; int main() { Shape* s1 new Circle(2.0); Shape* s2 new Rectangle(3.0, 4.0); cout s1-area() endl; cout s2-area() endl; delete s1; delete s2; return 0; }逻辑说明virtual是动态绑定的开关。s1 的静态类型是Shape*实际指向Circle对象area()调用会根据对象的真实类型派发到Circle::area而不是Shape::area所以输出 12.5664 和 12。基类析构函数也要加virtual否则delete s1时只调用Shape的析构Circle的析构被跳过造成资源泄漏——这是面试高频考点这个例题本身就是最好的演示。动手实验把基类area前面的virtual去掉重新编译运行输出会变成两个 0。原因是关闭虚函数机制后编译期按静态类型Shape决定调用Shape::area。这个实验建议亲手做一遍你会直接感受到“静态类型决定调用”和“动态类型决定调用”的差异。再把override关键字删掉试试——程序还能跑但编译器不再检查你是否真的重写了基类函数写错函数签名也不会报错这是隐藏 bug 的来源。4.3 运算符重载成员函数和友元函数的位置关系运算符重载章节的经典例题是复数类。复数的加法用成员函数重载输出流用友元函数重载这个组合几乎出现在所有版本里#include iostream using namespace std; class Complex { public: Complex(double r 0, double i 0) : real(r), imag(i) {} Complex operator(const Complex other) const { return Complex(real other.real, imag other.imag); } friend ostream operator(ostream out, const Complex c) { out c.real c.imag i; return out; } private: double real, imag; }; int main() { Complex a(1.0, 2.0), b(3.0, 4.0); Complex c a b; cout c endl; return 0; }逻辑说明a b会被编译器翻译成a.operator(b)这是成员函数形式的重载左操作数必须是Complex对象。输出流的operator不能做成成员函数因为左操作数是ostream对象而ostream类不是我们写的不能往里加成员函数所以只能用友元函数形式。参数列表里第一个参数是ostream引用返回它本身是为了支持cout a b这种链式写法。const Complex用引用避免拷贝同时保证不修改传入对象。练习时自己补一个operator成员函数判断两个复数实部虚部都相等再写一小段代码比较两个对象是否相等这个练习能帮你巩固“成员函数重载时左操作数是 this”这个关键认知。4.4 模板与 STL编译期实例化是理解报错的关键模板章节开始后例题的思维模式从“针对一个具体类型写代码”变成“针对一类类型写代码”。函数模板和 STL 容器操作的示例通常长这样#include iostream #include vector #include algorithm using namespace std; template typename T void printAll(const vectorT v) { for (size_t i 0; i v.size(); i) { cout v[i] ; } cout endl; } int main() { vectorint nums {5, 2, 8, 1}; sort(nums.begin(), nums.end()); printAll(nums); vectorstring words {cpp, java, python}; printAll(words); return 0; }逻辑说明template typename T声明类型参数 T编译器为vectorint和vectorstring各生成一份printAll实例这个过程发生在编译期而不是运行期。sort来自algorithm头文件默认按operator升序排列。这里的关键理解点是模板代码只有在实例化时才会完整检查类型是否支持所用操作所以报错信息经常一大串且错误位置指向模板定义内部——这不是编译器坏了是模板的固有机制。很多初学者被模板报错吓退其实只要记住“报错 某处的类型不支持某个操作”顺着报错信息里最靠后的调用位置去找就能定位到实际出问题的那一行。容器选择逻辑在这套例题里讲得很清楚需要随机访问用vector需要频繁头尾插入用deque需要按键查值用map。练习时把words换成一个mapstring, int存单词计数再遍历一次观察键值对的组织方式STL 这章就算真正入门了。5. 避坑与排查例题代码跑不起来时看这五条这几条都是我实际跑这套代码时踩过的坑按“现象 → 原因 → 解决”整理遇到的概率从高到低排。5.1 中文注释在编辑器和终端里显示成乱码现象用 VS Code 或文本编辑器打开源文件中文注释变成一堆乱码但程序还能正常编译运行。原因这套代码写作年代较早源文件保存编码多为 GB 系列而现代编辑器默认按 UTF-8 读取编码不匹配就会乱码。乱码只影响显示不影响编译结果。解决VS Code 打开文件后点右下角编码栏选择“通过编码重新打开 → GBK”注释和字符串里的中文就正常了。想统一转成 UTF-8 的话再选择“保存时转换编码”重新存一次。我一般只转自己要修改的那几个文件不全部转换避免之后对比代码差异时产生大量无关改动。5.2 编译报错nullptr was not declared或 auto 不识别现象用较新的编译器编译代码提示nullptr was not declared in this scope或者auto相关的语法错误。原因代码里使用了 C11 之后的语法特性但编译命令没指定标准编译器按 C98 默认解析。老版本 GCC 的默认标准就是 C98所以这类报错很常见。解决编译命令加-stdc11VS 用户在项目属性里把语言标准切到 C17。这里有一条血泪经验不要为了让老编译器通过把代码里的nullptr全替换成NULL、把auto改成显式类型——那是让新代码倒退正确做法永远是调高编译标准而不是改代码去迁就编译器。5.3 双击运行 .exe控制台一闪而过什么都没看清现象在 Windows 上直接双击编译生成的 exe 文件窗口闪一下就关了看不到任何输出。原因程序执行完窗口自动关闭这是控制台程序 window 关闭的正常行为不是崩溃也不是代码有问题。解决在命令行里手动运行可执行文件输出会保留在终端里或者临时在 main 末尾加一行cin.get();让程序等待一个回车再退出。注意cin.get()改的是源文件如果你后面要用文件重定向输入记得把这行删掉否则它会消费重定向的数据导致行为异常。更推荐的做法是用 3.3 节调试器的方式运行输出保留在调试控制台里还能顺带打断点看执行过程。5.4 编译提示 fatal error: iostream.h: No such file or directory现象编译时报错找不到头文件错误信息形如fatal error: iostream.h: No such file or directory。原因代码里写的是老式头文件写法#include iostream.h这个头文件在 C 标准化之后就废弃了现代编译器只提供#include iostream。解决把iostream.h改成iostream并在代码开头写上using namespace std;。顺带检查有没有其他旧式 C 头文件比如stdlib.h改成cstdlib、string.h改成cstring一次性替换完再编译。这类旧式写法在教程资源里出现频率不低遇到就按这个套路批量处理。5.5 同样的多态代码换了编译器结果就不同甚至输出全为 0现象同一段虚函数例题代码在一个编译器上输出正常换另一个编译器输出全为 0或者编译时直接报错。原因常见两种情况。一是基类析构没加virtual通过基类指针delete派生类对象时派生类析构不执行属于未定义行为不同编译器处理方式本来就不同二是override写错了签名编译器没启用新标准时不会帮你检查是否真的重写了基类函数。解决基类析构函数一律加virtual编译标准统一到 c11 或更高如果代码用了override确认编译器支持再使用。这类问题没有玄学按这三步逐一排查基本都能定位。6. 进阶把例题代码改造成自己的练习框架例题代码最大的价值不是“能跑”而是“能改”。我建议你做三件事把这份资源从答案册变成训练场。第一件给析构函数加打印观察对象生命周期。改造思路很简单Clock::~Clock() { cout 析构函数被调用: hour endl; }然后在 main 里用花括号包一段作用域比如{ Clock c(1, 2, 3); }你会发现析构在花括号结束时就执行了而不是等到 main 结束。再试试new出来的对象什么时候析构——只有delete时才执行不delete就一直活着直到程序结束。这个实验能帮你建立“栈对象自动管理、堆对象必须手动释放”的直觉比背任何内存管理的口诀都实在。第二件用对照实验法检验自己是否真懂。先不看源码自己写一个功能相同的类写完再对照例题代码逐行 diff。重点不是比谁写得好而是看差异点你漏了哪个const例题为什么给这个参数加引用你的版本能否处理 const 对象调用每处差异都是一个知识点缺口。我当年就是用这个办法过继承章节的花一个下午自己写人和学生类再对照教材代码对多态的理解深度和看十遍书完全不同。第三件做一次安全性重构。挑一个用了char*和裸new/delete的例题把字符串换成std::string、动态数组换成std::vector、手动内存管理换成智能指针。拿学生成绩管理类例题来说把固定数组改成vector后代码量会明显减少也不再需要手工维护数组长度。做完之后用同样的输入跑一遍对比输出确认行为没变——行为不变、代码更简这才是成功的重构。从那以后我每次拿到任何代码资源都强制自己按“跑通原版 → 改一版 → 对照差异”的流程走一遍。这套《C程序设计》例题源代码也一样跑通只是开始改起来才是你自己的东西。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

openMotor开源内部弹道模拟器:从燃面退移到推力曲线预测

openMotor开源内部弹道模拟器:从燃面退移到推力曲线预测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:56:04 阅读更多 →
楼宇能量管理多时间尺度调度:四层架构与需求侧响应建模

楼宇能量管理多时间尺度调度:四层架构与需求侧响应建模

干楼宇能源这一行,很多东西都是“计划赶不上变化”逼出来的。日前调度排得好好的,光伏预测半天更新一次,实际出力比预报少了三成;空调还在按既定计划跑,电网需求响应邀约偏偏在这个节骨眼发过来,室内温度眼…

2026/10/15 19:56:04 阅读更多 →
从雅虎军规到现代性能预算:前端优化的变与不变

从雅虎军规到现代性能预算:前端优化的变与不变

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:56:04 阅读更多 →

最新新闻

JMeter 5.6.2压力测试实战:从线程组到报告解读

JMeter 5.6.2压力测试实战:从线程组到报告解读

简介:Apache JMeter 5.6.2 是由 Apache 组织维护的开源纯 Java 压力测试工具,具备跨平台特性,可运行于 Windows、Linux、macOS。其用途在于模拟大量用户并发访问,评估 Web 应用、数据库、FTP 服务器等静态与动态资源的高并发稳定性…

2026/10/15 20:26:01 阅读更多 →
STM32F3开发基座解析:HAL嫁接、ADC同步与OPAMP避坑指南

STM32F3开发基座解析:HAL嫁接、ADC同步与OPAMP避坑指南

简介:本资源是ST官方发布的STM32F3系列微控制器HAL封装库完整固件包(V1.11.0),面向嵌入式初学者、STM32课程学习者及F3平台项目开发者,解决底层驱动适配难、外设配置复杂、代码可移植性差等典型开发痛点。压缩包共2000…

2026/10/15 20:26:01 阅读更多 →
HART主站协议栈实现:嵌入式C语言轻量级开源方案

HART主站协议栈实现:嵌入式C语言轻量级开源方案

简介:本资源是一份面向工业自动化领域嵌入式开发者与协议栈学习者的HART主设备协议栈开源实现,聚焦于HART(Highway Addressable Remote Transducer)通信标准在软件层面的落地,解决智能仪表系统中主控端(如P…

2026/10/15 20:26:00 阅读更多 →
BMN时序动作定位原理:边界匹配网络的矩阵建模与工业落地

BMN时序动作定位原理:边界匹配网络的矩阵建模与工业落地

1. 项目概述:为什么BMN不是又一个“边界检测”模型,而是时序动作定位的范式跃迁BMN(Boundary Matching Network)这个标题乍看平平无奇,像极了CV领域里那些堆叠卷积、加个注意力就起名“XX-Net”的常规操作。但如果你真…

2026/10/15 20:26:00 阅读更多 →
INCA_ProF脚本自动化标定:从执行模型到批量标定与报告生成

INCA_ProF脚本自动化标定:从执行模型到批量标定与报告生成

简介:这份PDF面向汽车电子标定工程师与INCA初学者,系统梳理ProF脚本的编程要点,帮助读者理解如何用脚本定制ECU闪存编程与自动化任务。资源为单文件PDF,压缩包约271KB,内容以图文笔记形式呈现,便于随时查阅…

2026/10/15 20:26:00 阅读更多 →
Advanced Installer 15.2汉化实践:Windows安装包多语言工程化落地

Advanced Installer 15.2汉化实践:Windows安装包多语言工程化落地

简介:Advanced Installer 15.2汉化版是一款面向Windows平台开发者与系统管理员的专业级安装包制作工具,解决传统MSI打包流程复杂、本地化支持弱、跨环境部署兼容性差等痛点,适用于.NET、Java、SQL Server等多技术栈项目的自动化部署场景。资源…

2026/10/15 20:24:58 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →