STL之resize()函数

狂风中的少年 提交于 2020-02-19 07:25:19

size()     目前容器正拥有的元素个数

capacity() 容器能储存的元素个数,即容量

reserve() 重新指定容器能存储数据的个数

resize() 重新指定容器有效的元素个数

设元素原本的v.size()是n 当调用v.resize(m)后,有两种情况:

1.若 m < n ,则只保存容器前m个元素

2.若m > n ,则容器之前储存的n个元素不变,不足m的部分补0

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    while(cin>>n)
        {
            vector<int>v;       //创建一个空的容器
            for(int i=0;i<n;++i)
                {
                    v.push_back(i);
                }
            int m;
            cin>>m;
            v.resize(m);
            cout<<"重新指定后元素个数:"<<v.size()<<endl;
            for(int i=0;i<m;++i)
                {
                    cout<<v[i]<<" ";
                }
            cout<<endl;
        }
    return 0;
}

 如果希望多出的部分不是补零,而是赋予指定的值,则可以调用v.resize(m,val)将不足的部分用val填充

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    while(cin>>n)
        {
            vector<int>v;       //创建一个空的容器
            for(int i=0;i<n;++i)
                {
                    v.push_back(i);
                }
            int m,val;
            cin>>m>>val;
            //如果希望多出的部分不是补零,而是赋予指定的值,则可以调用v.resize(m,val)将不足的部分用val填充
            v.resize(m,val);
            cout<<"重新指定后元素个数:"<<v.size()<<endl;
            for(int i=0;i<m;++i)
                {
                    cout<<v[i]<<" ";
                }
            cout<<endl;
        }
    return 0;
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!