vector 原理可视化
动手实现之前,先在这里把 vector 的行为看一遍:容量怎么变、元素放在哪、
data
/
end
/
cap
三个指针怎么动。看明白之后,自己把代码写出来。
内存视图
尚未初始化
先点击右侧的
vector_init
分配一块内存。之后每点一个操作,都留意上方三个指针和灰色区域的变化。
已构造元素 [0, size)
已分配未使用 [size, capacity)
旧的已 free 内存块
越界 / 非法访问
操作记录
操作
初始化 / 释放
init cap
vector_init
vector_destroy
尾部插入 / 删除
value
push_back
pop_back
容量
reserve n
reserve
shrink_to_fit
随机访问
index / value
get(idx)
set(idx, value)
本页为教学示意:内存地址是抽象出来的,
realloc
统一按「搬到新地址」演示,以突出指针失效这一现象。真实实现中它也可能原地扩展。