C++编程思维进阶:从数列求和到条件筛选的实战指南
1. 项目概述从“数列求和”到“条件筛选”的编程思维跃迁最近在带新人发现很多朋友在初学C时对“数列求和”这类基础题目能很快上手但一旦题目里加上“条件筛选”比如“求1到100之间所有能被3整除的数的和”思路就容易卡壳。这其实是一个典型的编程思维进阶点从简单的顺序累加过渡到需要先判断、再计算的逻辑控制。今天我就以这个看似简单的“案例数列求和与条件筛选”为引子拆解一下背后的编程逻辑、常见实现套路以及新手最容易踩的那些坑。无论你是正在刷题的学生还是想巩固基础的开发者相信这篇结合了多年调试经验的总结能帮你把这块基础打得更牢。简单来说“数列求和”是骨架它定义了数据的来源一个序列和操作累加而“条件筛选”则是灵魂它决定了骨架上的哪些“血肉”数据能够参与最终的计算。在C中这通常意味着你需要熟练运用循环for,while来遍历数列并嵌套条件判断语句if来执行筛选。这个组合是数据处理、算法实现乃至日常业务开发中最基础、最高频的模块之一。搞明白了它很多复杂问题都能拆解成这个模式的叠加或变种。2. 核心思路拆解遍历、判断与累加的三步舞当我们拿到一个“带条件的数列求和”问题时脑子里应该立刻浮现出一个清晰的、三步走的处理流程。这个流程几乎适用于所有同类问题。2.1 第一步定义数据源与边界首先你得明确你的数列是什么。是1到100的所有整数还是一个数组里存储的任意数字或者是用户输入的一串数据在C中常见的来源有固定范围的整数序列例如for(int i 1; i 100; i)。这是最简单的情形循环变量i本身就是数列项。数组或向量例如int arr[] {1, 5, -3, 10, 7};或std::vectorint vec {...};。你需要遍历这个容器。流输入例如持续从cin读取数据直到遇到终止条件如特定值或EOF。明确数据源后紧接着要确定遍历的边界。对于固定范围的循环起始值、终止条件和步长i还是i2就是边界。对于容器通常是从索引0开始到size()-1结束。边界定义错误是导致“少算一项”或“多算一项”甚至死循环的常见原因。注意在C中循环的终止条件要特别注意。i N和i N-1是等价的都遍历N次。但如果你写成了i N而起始是0你就会多遍历一次访问到越界的内存对于数组而言这是运行时错误的一大来源。2.2 第二步设计筛选条件这是“条件筛选”的核心。你需要将题目中的自然语言描述精确地翻译成C的逻辑表达式。例如“能被3整除” -i % 3 0“正数” -num 0“偶数” -i % 2 0“大于10且小于50” -num 10 num 50“是质数” - 这需要封装一个独立的判断函数条件可以很简单也可以是由逻辑运算符,||,!连接的复杂表达式。关键在于这个表达式必须对数列中的每一个待考察项都能得出一个布尔值true或false以决定该项是否“入选”。2.3 第三步执行累加操作对于通过筛选的项将其值累加到一个总和变量中。这个变量必须在循环开始前初始化通常为0。忘记初始化是新手常犯的错误会导致结果是一个不可预知的随机值取决于当时内存中的脏数据。累加操作本身很简单sum current_value;。但这里有个细节current_value是什么在固定整数序列循环中它就是循环变量i本身。在遍历容器时它就是arr[i]或vec[i]。确保你累加的是正确的值。将这三步用代码框架写出来就是下面这个样子// 1. 初始化总和 int sum 0; // 2. 遍历数列 for (初始化; 边界条件; 步进) { int current_item ...; // 获取当前项 // 3. 条件筛选 if (筛选条件为真) { // 4. 累加 sum current_item; } } // 5. 输出或使用结果这个框架是通用的。接下来我们通过几个具体案例看看如何填充这个框架并处理其中的细节和变种。3. 基础案例实战从简单到复合条件我们通过几个逐渐复杂的例子来巩固上面的三步走思路并注入一些实操中的经验。3.1 案例一求1~100内所有偶数的和这是最经典的入门题。#include iostream int main() { int sum 0; // 切记初始化 for (int i 1; i 100; i) { if (i % 2 0) { // 筛选条件偶数 sum i; } } std::cout 1~100内所有偶数的和为: sum std::endl; return 0; }实操心得i % 2 0是判断偶数的标准写法。注意是双等号这是比较运算符单等号是赋值如果写错条件会永远为真除非i%2结果为0因为赋值表达式的结果就是被赋予的值非零即视为true逻辑就全乱了。循环可以从2开始步进为2for (int i 2; i 100; i 2)。这样可以直接遍历所有偶数省去了if判断效率更高。这是一种优化思路但原题的训练目的正是if筛选。3.2 案例二求用户输入的一系列整数中所有正数的和这里数据源变成了不确定数量的用户输入。#include iostream int main() { int num, sum 0; std::cout 请输入一系列整数输入0结束: std::endl; while (std::cin num num ! 0) { // 循环读取直到输入0 if (num 0) { // 筛选条件正数 sum num; } } // 清除可能的失败状态例如非数字输入但简单场景可先忽略 // std::cin.clear(); // std::cin.ignore(std::numeric_limitsstd::streamsize::max(), \n); std::cout 所有正数的和为: sum std::endl; return 0; }实操心得while (std::cin num num ! 0)是一个常用模式。std::cin num本身会返回流的状态成功读取一个整数则进入循环。同时用num ! 0作为我们自定义的终止条件。这种交互式输入要考虑到用户的非法输入如输入字母。上面的代码在遇到非整数输入时std::cin会进入错误状态循环终止。更健壮的代码需要处理这种错误重置流状态并忽略错误输入如注释所示。但对于初学者练习核心逻辑可以暂不考虑。3.3 案例三求一个整数数组中所有大于平均值的数之和这个问题需要分两步先求和求平均值再基于平均值进行筛选。#include iostream #include vector int main() { std::vectorint vec {12, 45, 7, 23, 56, 89, 3, 41}; int total 0; double average 0.0; // 第一轮遍历求和 for (int value : vec) { // 范围for循环更简洁 total value; } average static_castdouble(total) / vec.size(); // 注意类型转换避免整数除法 // 第二轮遍历筛选并累加 int sum_above_avg 0; for (int value : vec) { if (value average) { // 筛选条件大于平均值 sum_above_avg value; } } std::cout 数组平均值为: average std::endl; std::cout 所有大于平均值的数之和为: sum_above_avg std::endl; return 0; }实操心得这个问题引入了“两轮遍历”的概念。第一轮是为了获取一个用于筛选的基准值平均值第二轮才是真正的筛选累加。在复杂问题中这种“预处理”思维很常见。计算平均值时total / vec.size()如果两者都是整数结果会是整数小数部分被截断。为了得到精确的浮点结果必须将其中一个操作数转换为double这里使用static_castdouble(total)是C推荐的安全转换方式。使用了C11的范围for循环语法for (int value : vec)它比传统的索引循环更简洁不易出错无需担心索引越界。这是现代C提倡的写法。4. 进阶技巧与性能考量当数据量变大或者条件变得复杂时我们就不能只满足于功能实现还需要考虑代码的效率和可读性。4.1 使用标准库算法简化代码C标准库提供了强大的算法组件可以让我们用更声明式、更不易出错的方式来表达“筛选”和“求和”。使用std::accumulate和 lambda 表达式#include iostream #include vector #include numeric // for std::accumulate int main() { std::vectorint vec {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 求所有偶数的和 int sum_even std::accumulate(vec.begin(), vec.end(), 0, [](int acc, int current) { // lambda表达式作为“筛选累加”策略 if (current % 2 0) { return acc current; } else { return acc; } }); std::cout 使用accumulate求得的偶数和: sum_even std::endl; return 0; }std::accumulate的第三个参数是初始值第四个参数是一个二元操作函数。这里我们传入一个lambda表达式它接收当前的累加值acc和序列当前值current在内部进行判断如果current是偶数就返回acccurrent否则原封不动返回acc。这种方式将遍历和操作逻辑都封装在了标准库函数里代码意图非常清晰。先筛选再求和std::copy_ifstd::accumulate有时先筛选出符合条件的元素到一个新容器再求和逻辑更分离。#include iostream #include vector #include algorithm // for std::copy_if #include numeric // for std::accumulate #include iterator // for std::back_inserter int main() { std::vectorint vec {1, -2, 3, -4, 5, -6}; std::vectorint positive_numbers; // 1. 筛选出正数 std::copy_if(vec.begin(), vec.end(), std::back_inserter(positive_numbers), [](int n) { return n 0; }); // 2. 对筛选后的容器求和 int sum_pos std::accumulate(positive_numbers.begin(), positive_numbers.end(), 0); std::cout 所有正数的和: sum_pos std::endl; return 0; }这种方法逻辑清晰但代价是额外的内存开销创建了positive_numbers容器和两次遍历。对于小数据量无所谓对于大数据量就需要权衡。4.2 性能考量遍历次数与内存使用对于“筛选并求和”这类操作性能瓶颈主要在于遍历次数尽可能在一次遍历中完成所有必要操作。像上面“求大于平均值的和”的例子如果数据量巨大且无法一次性装入内存可能需要先流式读取一遍求和、计数再读取第二遍进行筛选累加。这时就要考虑I/O成本。条件判断的成本筛选条件本身如果非常复杂例如判断一个数是否为质数那么它的计算成本会成为主导。在这种情况下优化判断逻辑的算法比优化循环本身更重要。内存访问模式对于数组/向量顺序遍历无论是for循环还是范围for对CPU缓存友好效率高。如果使用std::list等链表结构遍历开销会大很多。一个原则在绝大多数业务场景和初学阶段代码的清晰度和正确性优先于微优化。只有在性能分析Profiling明确指向这里是热点时才去考虑手写循环优化、使用更高效的数据结构或算法。5. 常见问题与调试技巧实录即使思路清晰实际编码时也总会遇到各种“坑”。下面是我总结的几个典型问题及其解决方法。5.1 问题一结果总是0或一个非常大的奇怪数字症状程序编译运行都没报错但sum输出的结果是0或者是一个像-124512345这样的巨大负数/正数。根因结果为0很可能筛选条件逻辑写反了。比如想求奇数之和却写了if (i % 2 0)。或者循环的边界根本没覆盖到任何符合条件的数。结果为巨大乱数几乎可以断定是忘记初始化累加变量sum。未初始化的局部变量其值是未定义的垃圾值在此基础上累加结果自然不可预测。排查首先检查sum的初始化int sum 0;。在循环内添加调试输出打印每一步的i或当前项的值以及判断条件的结果观察筛选是否按预期工作。for (int i 1; i 5; i) { bool isEven (i % 2 0); std::cout i i , isEven std::boolalpha isEven std::endl; if (isEven) { sum i; std::cout - added, current sum sum std::endl; } }5.2 问题二循环少算或多算了一个数症状求1到100的和结果不是5050而是4950少了100或5150多了100。根因循环的边界条件和起始值设置错误。排查for (int i 1; i 100; i)这是i 100当i99时满足条件执行循环体然后i变成100不满足i100退出。所以i100这一轮没有执行。这是最常见的“差一错误”。for (int i 0; i 100; i)这是从0开始到100结束总共101个数。如果你心里想的是1到100那就多算了0。技巧对于“从a到b包含”的遍历最清晰的写法是for (int i a; i b; i)。明确使用。如果遍历数组索引记住索引从0到size-1所以通常写for (int i 0; i vec.size(); i)。5.3 问题三条件判断表达式写错症状筛选结果不符合预期可能漏掉或包含了不该有的项。根因逻辑运算符或比较运算符使用错误。典型案例if (10 num 50)这是数学写法在C中是错误的。它会先计算10 num得到一个布尔值true或false即1或0再用这个结果和50比较。正确写法是if (num 10 num 50)。if (num % 2 0)误用赋值运算符代替比较运算符。编译器可能会警告“assignment within conditional expression”但不会报错程序会错误运行。if (num % 2 ! 0 num % 3 ! 0)想表达“既不是2的倍数也不是3的倍数”这是对的。但如果想表达“是2或3的倍数”应该是if (num % 2 0 || num % 3 0)注意和||的区别。技巧对于复杂的条件可以用括号明确优先级或者分步拆解到几个布尔变量中增加可读性。bool isInRange (num 10) (num 50); bool isMultipleOf2Or3 (num % 2 0) || (num % 3 0); if (isInRange isMultipleOf2Or3) { // ... }5.4 调试工具与思维使用调试器不要只靠cout打印。学会使用IDE如Visual Studio、CLion、VS Code with C插件的调试功能。设置断点单步执行观察变量在每一步的变化。这是理解程序运行流程、定位逻辑错误最强大的武器。简化测试不要一开始就用1到100这样的大数据测试。用极小的、你心算就能知道结果的例子比如数列{1,2,3,4}求偶数之和应该是6。用这个小数据集验证你的程序逻辑。模块化验证对于复杂条件单独写一个小函数或一小段代码来测试你的条件表达式是否正确。比如单独测试isPrime(n)函数对于几个已知的质数和非质数是否返回正确结果。6. 举一反三模式拓展与应用场景掌握了“遍历-筛选-累加”这个核心模式你可以解决一大类问题甚至是一些看似不相关的问题。6.1 变种一计数而非求和把累加操作sum value换成计数器加一count就成了“统计满足条件的元素个数”。例如统计数组中负数的个数。int count_negative 0; for (int val : vec) { if (val 0) { count_negative; } }6.2 变种二寻找极值在遍历中将累加换成比较和更新。例如寻找数组中的最大值。if (vec.empty()) { /* 处理空容器 */ } int max_value vec[0]; // 初始化为第一个元素 for (int val : vec) { if (val max_value) { // 筛选条件比当前最大值还大 max_value val; // “累加”操作变成了“更新”操作 } }6.3 变种三复合操作与复杂筛选筛选条件可以基于多个变量或者需要维护中间状态。例如求一个数列中连续递增子序列的最大长度。 这个问题仍然需要遍历但“筛选”逻辑变成了判断当前项是否大于前一项如果是则当前连续长度加一如果不是则重置长度并在重置前更新最大长度记录。这依然是在遍历中进行条件判断和状态更新。std::vectorint seq {1, 3, 5, 4, 7, 8, 6}; int max_len 1; // 至少一个元素 int current_len 1; for (size_t i 1; i seq.size(); i) { // 从第二个元素开始 if (seq[i] seq[i-1]) { // 条件是否递增 current_len; if (current_len max_len) { max_len current_len; // 更新最大值 } } else { current_len 1; // 重置当前连续长度 } } std::cout 最长连续递增子序列长度: max_len std::endl;6.4 应用场景联想这个模式在编程中无处不在数据处理从日志文件中筛选出错误日志并统计数量从数据库查询结果中过滤出符合某个条件的记录并计算总和。游戏开发遍历所有游戏实体筛选出处于“可攻击”状态的敌人并对它们造成伤害累加伤害或执行攻击操作。图像处理遍历图像的所有像素筛选出亮度高于某个阈值的像素并将它们的颜色进行某种平均累加颜色值再求平均。业务系统遍历订单列表筛选出本月已支付的订单并计算总营业额。说到底“数列求和与条件筛选”训练的不是一行代码而是一种分解问题、流程化思考的编程范式。它强迫你把一个模糊的需求“把那些符合XX条件的数加起来”翻译成计算机能严格执行的精确步骤在哪里找数遍历什么样的数符合条件判断符合了怎么办累加。把这个基础打牢后面遇到再复杂的算法和系统你都能找到分解和实现的抓手。

相关新闻

动态配置革命:Envoy xDS 协议与控制面集成实战

动态配置革命:Envoy xDS 协议与控制面集成实战

系列导读 你现在看到的是《Envoy 网关与七层代理:从入门到生产化进阶实践》的第 3/10 篇,当前这篇会重点解决:手把手搭建第一个 xDS 控制面,让 Envoy 配置从静态走向实时响应。 上一篇回顾:第 2 篇《Envoy 核心配置详解:Listener、Cluster 与 Route 的三角关系》主要聚…

2026/8/19 14:57:37 阅读更多 →
2026 木门十大品牌梳理,一线公认高性价比品牌全汇总

2026 木门十大品牌梳理,一线公认高性价比品牌全汇总

随着家居消费升级持续推进,木门作为家装空间的核心构件,早已从单纯的隔断功能转向静音、环保、设计与定制化的综合体验。面对市场上琳琅满目的品牌,消费者往往难以甄别真实实力与性价比。本文基于行业标准参与度、生产制造规模、市场口碑反馈…

2026/8/20 9:36:34 阅读更多 →
物联网设备硬件级安全防护与SE050应用解析

物联网设备硬件级安全防护与SE050应用解析

1. 为什么物联网设备需要硬件级安全防护在智能家居和工业物联网项目中,开发者常常面临一个两难选择:使用高性能MCU实现丰富功能,还是选择安全芯片保障数据安全。GD32VF103VBT6作为RISC-V架构的通用微控制器,在处理性能&#xff08…

2026/8/20 13:19:13 阅读更多 →

最新新闻

DamaiHelper 大麦抢票脚本保姆级上手指南:5 分钟配置,自动选票下单

DamaiHelper 大麦抢票脚本保姆级上手指南:5 分钟配置,自动选票下单

DamaiHelper 大麦抢票脚本保姆级上手指南:5 分钟配置,自动选票下单 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 热门演出开票后往往几十秒就售罄,手动点选很…

2026/8/21 17:09:56 阅读更多 →
视频生成提速3倍、显存减半:这套VAE自编码器优化模型是怎么做到的

视频生成提速3倍、显存减半:这套VAE自编码器优化模型是怎么做到的

视频生成提速3倍、显存减半:这套VAE自编码器优化模型是怎么做到的 【免费下载链接】Autoencoders 项目地址: https://ai.gitcode.com/hf_mirrors/lightx2v/Autoencoders 如果你正在本地跑视频生成,大概率经历过这样的深夜:精心改好 p…

2026/8/21 17:09:56 阅读更多 →
chromatic 通用修改器快速上手:免费给 Chromium/V8 应用注入脚本、拦截函数

chromatic 通用修改器快速上手:免费给 Chromium/V8 应用注入脚本、拦截函数

chromatic 通用修改器快速上手:免费给 Chromium/V8 应用注入脚本、拦截函数 【免费下载链接】chromatic Universal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器 项目地址: https://gitcode.com/gh_mirrors/be/chromatic chromatic 是一个…

2026/8/21 17:09:56 阅读更多 →
deinit 自动释放全解析:NSObject-Rx 如何与对象生命周期完美联动

deinit 自动释放全解析:NSObject-Rx 如何与对象生命周期完美联动

deinit 自动释放全解析:NSObject-Rx 如何与对象生命周期完美联动 【免费下载链接】NSObject-Rx Handy RxSwift extensions on NSObject, including rx.disposeBag. 项目地址: https://gitcode.com/gh_mirrors/ns/NSObject-Rx 在 RxSwift 开发中,d…

2026/8/21 17:09:56 阅读更多 →
PyBroker 入门指南:4步上手机器学习驱动的算法交易回测

PyBroker 入门指南:4步上手机器学习驱动的算法交易回测

PyBroker 入门指南:4步上手机器学习驱动的算法交易回测 【免费下载链接】pybroker Algorithmic Trading in Python with Machine Learning 项目地址: https://gitcode.com/gh_mirrors/py/pybroker 想用 Python 把机器学习真正用进算法交易,却被回…

2026/8/21 17:09:56 阅读更多 →
9款AI写论文哪个好?2026实测:只有它敢给你真文献+真图表

9款AI写论文哪个好?2026实测:只有它敢给你真文献+真图表

官网:www.shujiangce.com | 微信公众号:书匠策AI 各位同学好,我是专帮你们“排雷”的论文科普博主。 2026年毕业季,后台问得最多的问题已经从“论文怎么写”变成了“9款AI写论文哪个好”。说实话,市面上的AI论文工…

2026/8/21 17:08:55 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →