C++高阶篇:STL

C++高阶篇3:实用工具集——收纳盒、模具与日记本

前置条件

  1. 已掌握基础篇(变量/循环/函数)、进阶篇(面向对象)、高阶篇1(线程/锁)、高阶篇2(Socket)核心内容;

  2. 编程环境:Dev-C++/Code::Blocks(支持C++11及以上);

  3. 核心原则:

    1. 术语儿童化:STL容器=智能收纳盒、模板=万能模具、文件操作=永久日记本;

    2. 代码极简:只保留核心逻辑,剔除复杂特性(如STL算法只讲sort,模板只讲基础通用类型);

    3. 落地性强:每个知识点都结合“宠物/成绩/零食”等孩子熟悉的场景,学完就能用。

课时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. 存东西:标签→内容
    名字成绩收纳盒["小明"] = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值