vector 的核心是三个原始指针:

  begin_                    end_              cap_
    |                        |                 |
    v                        v                 v
    [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][   ][   ][   ]
    |<------- size -------->|
    |<------------- capacity -------------->|

  - begin_:指向第一个元素。相当于数组的首地址。
  - end_:指向最后一个元素的下一个位置(past-the-end)。
  - cap_:指向已分配内存的末尾。cap_ 和 end_ 之间的空间是已经分配了但还没有构造对象的"空位"。