当前位置: 代码迷 >> 综合 >> 重设vector容器的长度(resize())
  详细解决方案

重设vector容器的长度(resize())

热度:37   发布时间:2023-12-26 09:44:50.0

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()后,如果想把元素压入自己想要的位置,只能通过访问下标来进行操作。

  相关解决方案