Skip to content

docs(cpp): 补全std::array答案 - #216

Open
xiaoshuaijie wants to merge 1 commit into
Awesome-Embedded-Learning-Studio:mainfrom
xiaoshuaijie:ch05-2
Open

docs(cpp): 补全std::array答案#216
xiaoshuaijie wants to merge 1 commit into
Awesome-Embedded-Learning-Studio:mainfrom
xiaoshuaijie:ch05-2

Conversation

@xiaoshuaijie

Copy link
Copy Markdown
Collaborator

修复说明

延续"补全练习参考答案"系列(#207#208#211#214 等),为 vol1-fundamentals ch05 的《std::array》一文补全练习部分的参考答案:

  • 练习二(成绩排序与统计):新增 ::: details 参考答案 折叠块,内含完整示例代码、编译运行命令与实测运行结果。示例覆盖 std::array 的声明与初始化、range-for 遍历、static_cast<double> 计算平均分;统计操作全部使用 <algorithm>(std::sort 排序,std::minmax_element 一次取最小/最大值,并用 C++17 结构化绑定接收结果)。
  • 练习三(判断元素是否存在):新增参考答案折叠块。containsconst std::array<int, 5>& 传参(呼应本章"传参"小节),内部用 std::findend() 比较判断;main 中分别测试存在(43)与不存在(99)两种情况。
  • 练习一:为开放式改写练习(把 C 数组练习用 std::array 重写),标注"自行练习就好",不提供固定答案。
  • 阅读时长:reading_time_minutes10 调整为 11,反映新增内容。

答案块格式(代码 → 编译运行 → 运行结果)与已合并的同类 PR 保持一致。

修复类型

  • 内容勘误
  • 站点显示或导航问题
  • 链接或搜索问题
  • 示例代码问题
  • 构建、CI 或脚本问题
  • 翻译修正
  • 其他: 教程内容补充 —— 为现有文章《std::array》补全练习参考答案

影响范围

  • documents/vol1-fundamentals/ch05/02-std-array.md(1 file changed,+95 / −1)
  • 仅正文"练习"一节与 frontmatter 的 reading_time_minutes;title / chapter / order / tags 均未变,无需更新导航或索引。

验证方式

本地环境:WSL2 Ubuntu 24.04,g++ 13.3.0(Ubuntu 13.3.0-6ubuntu2~24.04.1)。

  • 如包含代码,已说明是否测试过:两段参考答案代码均提取到 /tmp,以 g++ -std=c++17 -Wall -Wextra 编译,零警告,实际输出与文中"运行结果"逐字一致:

    练习二:

    原始数据: 32 76 43 10 54 65 87 21 
    排序后数据: 10 21 32 43 54 65 76 87 
    最小值: 10
    最大值: 87
    平均值: 48.5
    

    练习三:

    数组是否包含 43: 是
    数组是否包含 99: 否
    
  • frontmatter 校验:.venv Python 运行 scripts/validate_frontmatter.py,全仓 991 个文件通过(0 warnings / 0 errors)。

  • Markdown 可以正常阅读:结构沿用文中既有 ::: details 折叠与代码块写法(与 docs(cpp): 补全指针基础练习答案 #207 等已合并 PR 一致);markdownlint 本地未安装,由 CI 复查。

  • 如修改正式教程文章,已考虑是否需要更新导航或索引:无需,frontmatter 结构未变。

注:本分支基于 037f34f(#207);上游 main 之后新增的提交(#208#215)与本 PR 无文件重叠,合并不存在冲突风险。

关联 Issue / Discussion

无关联 issue;

@Charliechen114514 Charliechen114514 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

先看看下面的评论,如果不是的话,还是改一下比较好,有点忘记了

std::cout << x << " ";
}
std::cout << "\n";
auto [min_it, max_it] = std::minmax_element(arr.begin(), arr.end());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unpack解包功能咱们前面的文章有提到吗?会不会超纲了?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants