vector 容器的容量(capacity)和大小(size)之间的区别 vector 容器的容量(用 capacity 表示),指的是在不分配更多内存的情况下,也就是事先分配好内存大小,如果不超出容量即便有新的元素加入也不会分配内存空间;容器可以保存的最多元素个数;而 vector 容器的大小(用 size 表示),指的是它实际所包含的元素个数。对于...
连续容器如:Vector,内部是预先分配一段连续缓存来保存对象,所分配内存可以保存对象的个数为容量,而已保存的对象个数为长度。当程序调用push时候,如果容量不够了,Vector自动重新分配一段缓存,大小是原来的2倍,然后把原来的内容拷贝到新缓存中,最后释放原来的缓存。出现这种情况是很费时间的!所以Vecto...
图1 vector 容量和大小的区别 显然,vector 容器的大小不能超出它的容量,在大小等于容量的基础上,只要增加一个元素,就必须分配更多的内存。注意,这里的“更多”并不是 1 个。换句话说,当 vector 容器的大小和容量相等时,如果再向其添加(或者插入)一个元素,vector 往往会申请多个存储空间,而不仅仅只申请 1 个。
图 1 vector 容量和⼤⼩的区别 显然,vector 容器的⼤⼩不能超出它的容量,在⼤⼩等于容量的基础上,只要增加⼀个元素,就必须分配更多的内存。注意,这⾥的“更多”并不是 1 个。换句话说,当 vector 容器的⼤⼩和容量相等时,如果再向其添加(或者插⼊)⼀个元素,vector 往往会申请多个...
图1 vector 容量和大小的区别 显然,vector 容器的大小不能超出它的容量,在大小等于容量的基础上,只要增加一个元素,就必须分配更多的内存。注意,这里的“更多”并不是 1 个。换句话说,当 vector 容器的大小和容量相等时,如果再向其添加(或者插入)一个元素,vector 往往会申请多个存储空间,而不仅仅只申请 1 个。
cout<<"value 大小是:"<< value.size()<< endl; return0; } 程序输出结果为: value 容量是:20 value 大小是:15 结合该程序的输出结果,图 1 可以更好的说明 vector 容器容量和大小之间的关系。 图1 vector 容量和大小的区别 显然,vector 容器的大小不能超出它的容量,在大小等于容量的基础上,只要增加一个...