哈喽,各位好!今天我们来一起手撸一个简化版的 std::vector
,重点放在内存管理上,保证让你彻底理解 C++ 里面的动态数组是怎么回事儿。
啥是 std::vector
?
简单来说,std::vector
就是一个可以自动增长的数组。你不用一开始就确定它的大小,可以随时往里面添加元素,它会自动帮你分配和释放内存。这玩意儿在 C++ 里简直是神器,用得不要太频繁。
为啥要自己实现?
直接用 std::vector
不香吗?香!但是,想要真正理解它的工作原理,特别是内存管理那一块,最好的办法就是自己动手实现一个简化版。这样你才能知道 std::vector
背后都做了些什么,以后遇到内存相关的问题也能更快地定位。
我们简化版的目标
- 动态增长: 可以像
std::vector
一样,动态地添加元素。 - 基本操作: 实现
push_back
(添加元素到末尾)、size
(获取元素个数)、capacity
(获取容量)、operator[]
(下标访问)等基本操作。 - 内存管理: 重点关注内存的分配、释放和重新分配。
- 异常安全: