弄清楚容器的capacity(容量)和size(长度)的区别非常重要,size指容器当前拥有的元素个数,而capacity则指容器在必须分配新存储空间之前可以存储的元素总数。默认情况下,创建完vector后,其size和capacity都为0,但是向vector插入元素后,会发生变化,通常capacity会比size大,比如: vectorivec; for (vector::size_type ix=...
capacity是当前vector分配的可以容纳的元素个数,下面的代码中,vec0可以容纳13个元素,但仅包含了size(即10)个元素,还有3个元素可以放进去,当再放入超过3个元素后,vec0就会被重新分配空间;所以,capacity始终大于等于size; resize把容器改为容纳n个元素。调用resize之后,size将会变为n;其中n又分了三种情况,当n <siz...
删除过程则是将该位置以后的所有元素整体前移一位。 (2)vector的size和capacity size指vector容器当前拥有的元素个数,capacity指容器在必须分配新存储空间之前可以存储的元素总数,capacity总是大于或等于size的。 三、数组与vector的对比 1、内存中的位置 C++中数组为内置的数据类型,存放在栈中,其内存的分配和释放完全...
capacity() //当前vector分配的大小 size() //当前使用数据的大小 capacity(); //返回a在内存中总共可以容纳的元素个数 a.reserve(100); //改变当前vecotr所分配空间的大小将a的容量(capacity)扩充至100,也就是说现在测试a.capacity();的时候返回值是100 a.resize(10); //将a的现有元素个数调至10个,多...
使用capacity()函数可以获取当前vector容器的容量: vector<T> vec; int capacity = vec.capacity(); 1. 2. 如果想要改变vector容器的容量,可以使用reserve()函数或者resize()函数: reserve()函数用于预留空间,但并不改变vector容器的大小。 vector<T> vec; ...
vector 通常比静态数组占用更多的空间,因为分配了更多的内存来处理将来的增长。这样,vector 不必在每次插入元素时都重新分配,而仅在附加内存耗尽时才需要重新分配。可以使用 capacity() 函数查询已分配的内存总量。可以通过调用 shrink_to_fit() 将额外的内存返回给系统。
capacity capacity函数的主要作用是返回当前存储空间能够容纳的元素数(即当前分配存储的容量)。其函数原型如下:size_type capacity()const; //C++11 前size_type capacity()constnoexcept; //C++11 起, C++20 前constexpr size_type capacity()constnoexcept; //C++20 起 reserve reserve函数是用来为vector预留...
size()是分配容器的内存大小,而capacity()只是设置容器容量大小,但并没有真正分配内存。 如下所示代码,解释size( ) 和 resize( )函数的使用情况: 1#include <cstdlib>2#include <iostream>3#include <vector>45usingnamespacestd;67intmain(intargc,char*argv[])8{9vector<int> vi(5);10cout <<"vi size...
vector a的第一个字段是size 大小第二个字段是capacity 容量 和std::string差不多 当size>capacity也就是空间不够用时 首先配置一块新空间,然后将元素从旧空间一一搬往新空间,再把旧空间归还给操作系统 内存增长机制 测试代码: #include<iostream>#include<vector>usingnamespacestd;intmain(intargc,char**argv)...
capacity();//容器的容量 size();//返回容器中元素的个数 resize(int num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。 resize(int num, elem);//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。