C++20 容器课
手搓一个 vector,把 allocator 和生命周期写明白。
这是一份可以在浏览器里抄完的教程。你不需要克隆本教程的 Git 仓库: 「起步」页里有 CMake、作业纸、测试和演示程序的完整文件。 抄到本地空白目录,就能编译、逐步把测试跑绿。卡住了先看 常见问题。
你会实现 reserve、resize、push_back、emplace_back、pop_back,并让 T 可以没有默认构造函数。自定义分配器走 std::allocator_traits,空分配器用 [[no_unique_address]]。
八个章节
Step 01骨架与内存模型Step 02接入 AllocatorStep 03构造与析构元素Step 04reserve 与扩容Step 05emplace_back / push_backStep 06resize 与无默认构造Step 07拷贝、移动与交换Step 08访问、迭代器与异常安全
怎么学
- 在起步页创建本地目录,把列出的文件逐个保存(或下载压缩包)。
- 用作业纸
student/mini_vector/vector.hpp:上半是声明,下半用各章「可粘贴代码」整段替换 TODO。 - 每步用页面底部的
gtest_filter验收。编译报错先看常见问题,逻辑卡住再打开参考答案。