C++高阶篇3:实用工具集——收纳盒、模具与日记本
前置条件
-
已掌握基础篇(变量/循环/函数)、进阶篇(面向对象)、高阶篇1(线程/锁)、高阶篇2(Socket)核心内容;
-
编程环境:Dev-C++/Code::Blocks(支持C++11及以上);
-
核心原则:
-
术语儿童化:STL容器=智能收纳盒、模板=万能模具、文件操作=永久日记本;
-
代码极简:只保留核心逻辑,剔除复杂特性(如STL算法只讲sort,模板只讲基础通用类型);
-
落地性强:每个知识点都结合“宠物/成绩/零食”等孩子熟悉的场景,学完就能用。
-
课时1:STL容器——编程里的“智能收纳盒”
学习目标
-
理解STL容器是“可伸缩、带功能的智能收纳盒”,解决普通数组“固定大小、功能少”的问题;
-
掌握最常用的
vector(可伸缩数组)和map(带标签的收纳盒)的基础用法。
教学内容
1. 趣味导入(生活场景):
“你之前用的数组像‘固定大小的塑料盒’——买的时候是5格,只能装5个东西,多了装不下、少了浪费;STL容器是‘智能收纳盒’:
-
vector:像伸缩收纳盒,装多少东西就变多大,还能一键排序、快速找东西; -
map:像带标签的收纳盒,比如‘小明’对应‘95分’、‘小红’对应‘88分’,按标签一查就找到,不用一个个翻。”
2. 核心代码1:vector(伸缩收纳盒)
#include <iostream>
#include <vector> // vector头文件
#include <algorithm> // 排序用的头文件
using namespace std;
int main() {
// 1. 创建空的伸缩收纳盒(存成绩)
vector<int> 成绩收纳盒;
// 2. 往盒子里放东西(push_back=“往后塞”)
成绩收纳盒.push_back(85);
成绩收纳盒.push_back(98);
成绩收纳盒.push_back(79);
成绩收纳盒.push_back(92);
// 3. 看盒子里有多少东西(size=“数格子”)
cout << "收纳盒里的成绩数量:" << 成绩收纳盒.size() << endl;
// 4. 遍历收纳盒(两种方式,选简单的)
cout << "原始成绩:";
for (int 成绩 : 成绩收纳盒) { // 简化遍历,不用写下标
cout << 成绩 << " ";
}
cout << endl;
// 5. 一键排序(sort=“自动整理盒子里的东西”)
sort(成绩收纳盒.begin(), 成绩收纳盒.end());
cout << "排序后成绩:";
for (int 成绩 : 成绩收纳盒) {
cout << 成绩 << " ";
}
cout << endl;
// 6. 按下标取东西(和普通数组一样)
cout << "最高分:" << 成绩收纳盒.back() << endl; // back=取最后一个(排序后是最大的)
cout << "最低分:" << 成绩收纳盒.front() << endl; // front=取第一个
// 7. 删掉最后一个东西
成绩收纳盒.pop_back();
cout << "删掉最低分后,剩余成绩:";
for (int 成绩 : 成绩收纳盒) {
cout << 成绩 << " ";
}
cout << endl;
return 0;
}
3. 核心代码2:map(带标签的收纳盒)
#include <iostream>
#include <map> // map头文件
#include <string>
using namespace std;
int main() {
// 1. 创建带标签的收纳盒(标签=名字,内容=成绩)
map<string, int> 名字成绩收纳盒;
// 2. 存东西:标签→内容
名字成绩收纳盒["小明"] =


1万+

被折叠的 条评论
为什么被折叠?



