20170328_请说出容器 vector 当中的 size() 和 capacity() 的区别
1、请说出容器 vector 当中的 size() 和 capacity() 的区别?
(1)size() 函数指的是,容器 vector 当中已经存放了多少个元素。
capacity() 函数指的是这个容器在被重新分配存储空间之前最多能够存放多少个元素。
(2)其中,capacity() 是 2 倍增长的。
也就是说,比如,初始时 capacity() 是 4,现在 size() 也是 4,说明该容器的空间已经被存满了。这时,当 push_back() 第 5 个元素进入该容器的时候,发现该容器的容量不够了,此时就会重新给这个容器分配 8 个空间(是上一次分配空间的 2 倍),然后再把原来的数据复制到这个新分配的内存空间里。需要注意的是,此时,原来的迭代器已经失效!
2、
(1)
3、
(1)