C++中fill()的使用

1.什么是fill()?
当我们想对一个容器的值进行填充时,我们就可以使用fill()函数。

Fill range with value
Assigns val to all the elements in the range [first,last).

2.怎么用fill()?
2.1 使用fill()函数填充普通一维数组
代码如下:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int arr[8];
    for(int i=0;i<8;i++)
        cout<<arr[i]<<" ";
        //7274444 1970195648 -1044328830 -2 7274248 1970171885 4248064 7274368
    cout<<endl;
    
    fill(arr,arr+7,7);
    for(int i=0;i<8;i++)
        cout<<arr[i]<<" ";
        //7 7 7 7 7 7 7 1970171885
    cout<<endl;     
    
    fill(arr,arr+8,8);
    for(int i=0;i<8;i++)
        cout<<arr[i]<<" ";
        //8 8 8 8 8 8 8 8    
    cout<<endl;
    return 0;
}

2.2使用fill()函数填充二维数组
如何使用fill()函数填充二维数组呢?

    int G[6][6];
    fill(G[0],G[0]+6*6,6);
    for (int i = 0; i < 6; i++) {
        /* code */
        for (int j = 0; j < 6; j++) {
            /* code */
            cout<<G[i][j]<<" ";
        }
        cout<<endl;
    }
// 6 6 6 6 6 6
// 6 6 6 6 6 6
// 6 6 6 6 6 6
// 6 6 6 6 6 6
// 6 6 6 6 6 6
// 6 6 6 6 6 6

2.3 使用fill()函数填充vector
代码


    vector<int> v(8);
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
        //0 0 0 0 0 0 0 0
    cout<<endl;
    
    vector<int> v1(8,1);
    for(it=v1.begin();it!=v1.end();it++)
        cout<<*it<<" ";
        //1 1 1 1 1 1 1 1
    cout<<endl;
    
    fill(v1.begin(),v1.end(),2);
    for(it=v1.begin();it!=v1.end();it++)
        cout<<*it<<" ";
        //2 2 2 2 2 2 2 2
    cout<<endl;
    
    fill(v1.begin(),v1.begin()+4,4);
    for(it=v1.begin();it!=v1.end();it++)
        cout<<*it<<" ";
        //4 4 4 4 2 2 2 2
    cout<<endl;
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐