9-4 vector对象是如何增长的


image-20220223104824524

  • .size():容器中有多少元素
  • .capacity():不重新分配内存时,可容纳多少元素
  • .reserve(n):分配至少能容纳n个元素的内存
    • n>capacity时会分配使得capacity >= n
    • n<=capacity时什么也不做
  • image-20220223105758504

reserve()永远不会减少容器的内存空间;shrink_to_fit()也不能保证一定会被执行

int main(){
    vector ivec;
    //size=0;capacity依赖具体实现
    cout<<" size = "<

可以用reverse()预分配空间

int main(){
    vector ivec;
    ivec.reserve(50);
    for(int ix = 0; ix != 24; ++ix)
        ivec.push_back(ix);
    cout<<" size = "<

相关