1. size = m_finish-m_start: 表示此时vector中有多少个元素。
2. capacity:
m_end_storage-m_start:表示再不重新分配内存的前提下,可以容纳的元素的个数,注意这个数值包含了已经存在的元素个数,即
capacity()-size():表示还有多少个可以push的元素个数在不重新分配的前提内存的前提下。
3. STLport库元素增长是以当前元素的个数*2的倍数来进行分配的。
4. Resize(int n):n表示要resize到的个数.
如果n<size(),从vector的末尾把size()-n的元素destroy掉(invoke destroy function),使得size()=n。
如果n>size(),重新分配内存并copy已存的元素,所以会发生iterator失效的问题。
5. Reserve(int n): n表示要预留的元素个数。如果在调用reserve()函数之前已经包含了元素的话,调用reserve()函数中会重新分配内存并copy已存的元素,所以会发生iterator失效的问题。所以最好是在没有任何元素的前提下reserve()函数。在reserve()函数后,size()不变,capacity()==n。
来源:https://www.cnblogs.com/suexue/archive/2012/08/12/2635360.html