resize(n),一般是用来改变容器的大小,使其包含n个元素。如果n小于当前容器的大小,内容调减至前n个元素,并把多余的元素销毁掉;如果n大于当前容器的大小,默认以0填充;
如果n大于当前容器的容量,所分配的存储空间自动重新分配;
resize并不会对原vector已经存在的元素进行重新初始化
#include<iostream>
#include<vector>
using namespace std;int main()
{vector<int>v;for(int i=1;i<10;++i)v.push_back(i);//长度为9v.resize(4);//重设长度为4v.resize(8,1000);//重设长度为8,以1000填充v.resize(12);//默认填充元素是0for(int i=0;i<v.size();++i)cout<<v[i]<<" ";}
输出:1 2 3 4 1000 1000 1000 1000 0 0 0 0
【注意】resize不可以被用于限定容器大小;
如果想限定容器大小为n个,调用v.resize(n);接着push_back压入第一个元素时,元素没有被压入第一个位置而是压入到了n+1个位置上;如果push_back了n个元素,此时容器大小变成2n;resize()只能用来设置容器大小的最小值。调用resize()后,如果想把元素压入自己想要的位置,只能通过访问下标来进行操作。