C++ vector中capacity()和size() 的区别
size是指容器当前拥有元素的个数,
capacity是指容器在必须分配新的存储空间之前可以存放的元素总数。
- 如
vector<int> ivect(10),ivect.capacity()=10,ivect.size()=0,
- 当向ivect中插入元素时,只要没有超过10个,那么capacity就不变,而size为你插入的元素的个数。
- 当插入第10个数据时,
capacity=size=10
, - 当插入第11个数据时,容器
重新分配存储空间
:ivect.capacity()=20,而ivect.size()=11
, - 即容器重新分配空间的话是现有空间的2倍进行分配,以保证vector的效率。