进行中容器实现C++项目 07

STL-internals

从容器的内存布局和不变量出发,手写 vector 与 unordered_map,再用 benchmark 和分布数据校验实现。

当前覆盖vector · unordered_map
验证工具Benchmark · ASan
后续计划list · string · priority_queue

实现主线

vector 围绕三指针布局、几何扩容、迭代器和异常安全展开;unordered_map 围绕桶、拉链法、负载因子和 rehash 展开。每一个接口都先明确不变量,再补测试。

实验记录

  • 记录 100 万级 push_back 和插入 benchmark,与标准库版本对照。
  • 观察 rehash 触发点和负载因子,验证桶数变化后必须重新计算哈希位置。
  • 用泊松分布对比链长分布,检查哈希分布是否偏斜。
  • 用 ASan 捕获扩容边界和释放路径中的内存问题。

当前状态

项目仍在持续补充接口和测试,页面只展示已经落地的 vector 与 unordered_map,不把计划中的容器写成已完成。