大小(size,跟resize相对应)与容量(capacity,与reserve相对应)之间有很大的区别:
size表明容器中目前实际有多少个元素,resize会在容器的尾部添加或删除一些元素,使容器达到指定的大小。这两个函数对list、vector、deque都适用,对其它容器不适用。
capacity表明最少添加多少个元素才会导致容器重新分配内存,reserve会使容器的内部缓冲区扩充至一个更大的容量,以确保至少满足reserve的参数所指出的空间大小。这两个函数仅对vector适用。
v.reserve(2);执行之后,可以确保v.capacity() >= 2;(注意不是v.capacity() == 2;)。