size resize与capacity reserve之间的区别

大小(size,跟resize相对应)与容量(capacity,与reserve相对应)之间有很大的区别:

size表明容器中目前实际有多少个元素,resize会在容器的尾部添加或删除一些元素,使容器达到指定的大小。这两个函数对list、vector、deque都适用,对其它容器不适用。

capacity表明最少添加多少个元素才会导致容器重新分配内存,reserve会使容器的内部缓冲区扩充至一个更大的容量,以确保至少满足reserve的参数所指出的空间大小。这两个函数仅对vector适用。

v.reserve(2);执行之后,可以确保v.capacity() >= 2;(注意不是v.capacity() == 2;)。

posted on 2012-12-07 12:39  zhuyf87  阅读(489)  评论(0编辑  收藏  举报

导航