网站排行榜上升代码,昌平网站制作公司,怎样利用网站做推广,跨境电商被骗血本无归1. 容器的容量
容器的size是指它已经保存的元素的数目#xff1b;而capacity则是在不分配新的内存空间的前提下它最多可以保存多少元素。capacity()#xff0c;size()#xff0c;reserve()#xff0c;resize()这几个都是不太容易区分的函数
functionmeancapacity()获得容…1. 容器的容量
容器的size是指它已经保存的元素的数目而capacity则是在不分配新的内存空间的前提下它最多可以保存多少元素。capacity()size()reserve()resize()这几个都是不太容易区分的函数
functionmeancapacity()获得容器在不新增内存的情况下最多能存储多少个size()这个很简单就是获得容器中现在存储了几个reserve()指定容器能存储几个数据resize()顾名思义重新指定size的大小
当我们创建空容器时容量(capacity)为0容器的内存空间用完时增加为原容量的1/2上述机制适用于元素连续存储的容器如vector 而list则不同。 capacity 一般大于size的原因是为了避免每次增加数据时都要重新分配内存所以一般会生成一个较大的空间以便随后的数据插入。
2. c实例
#include iostream
#include vectorint main() {//此时没有初始化所以size()和capacity()都是0std::vectorint vec; std::cout size: vec.size() std::endl capacity: vec.capacity() endl;vec.push_back(1);//此时容器内有一个元素了那么size()和capacity()都是1std:cout size: vec.size() std::endl capacity: vec.capacity() std::endl;vec.push_back(1);//此时容器内能够提供的空间capacity()不够用根据前面提到的二倍原则申请后的大小应该是以前的2倍此时有两个元素size()为2capacity()也是2std::cout size: vec.size() std::endl capacity: vec.capacity() std::endl;vec.push_back(1);//此时容器能够提供的空间是2申请后的空间为原来2倍就是4了那么size()为3capacity()为4std::cout size: vec.size() std::endl capacity: vec.capacity() std::endl;vec.push_back(1);//容器还能够提供一个空间不需要申请新空间size()为4capacity()为4std::cout size: vec.size() std::endl capacity: vec.capacity() std::endl; vec.push_back(1);//空间不够需要申请size()为5capacity为8std::cout size: vec.size() std::endl capacity: vec.capacity() std::endl;
}