12
小项目:现代 C++ 任务管理器
Mini Project — Task Manager
对比上一页 C 的学生管理系统,你会发现现代 C++ 写同样的东西代码短了一大半,还不用手动管内存。下面用 vector 存任务、用智能指针、用 lambda 排序、用文件持久化。
项目骨架:vector + struct + 文件 + lambda 排序
#include <vector>
#include <string>
#include <algorithm>
#include <fstream>
#include <iostream>
struct Task {
std::string title;
int priority; // 数字越小越急
bool done = false;
};
int main() {
std::vector<Task> tasks;
tasks.push_back({"买牛奶", 2});
tasks.push_back({"交报告", 1});
tasks.push_back({"遛狗", 3});
// 用 lambda 按优先级排序
std::sort(tasks.begin(), tasks.end(),
[](const Task& a, const Task& b) {
return a.priority < b.priority;
});
// 打印
for (const auto& t : tasks)
std::cout << "[" << t.priority << "] " << t.title << "\n";
// 持久化到文件(vector 自动管理内存,不用 free)
std::ofstream out("tasks.txt");
for (const auto& t : tasks)
out << t.priority << " " << t.title << "\n";
}
运行结果
[1] 交报告
[2] 买牛奶
[3] 遛狗
练扩展作业
① 加一个"后台提醒线程":用 std::thread 睡几秒后提醒未完成任务。② 用 std::unique_ptr<Task> 管理任务指针。③ 用 std::format 替换 cout 拼接。④ 加命令行菜单(增删改查)。做完你就把 OOP、STL、智能指针、并发全过了一遍。