vector 的核心是三个原始指针:
begin_ end_ cap_
| | |
v v v
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ ][ ][ ]
|<------- size -------->|
|<------------- capacity -------------->|
- begin_:指向第一个元素。相当于数组的首地址。
- end_:指向最后一个元素的下一个位置(past-the-end)。
- cap_:指向已分配内存的末尾。cap_ 和 end_ 之间的空间是已经分配了但还没有构造对象的"空位"。