C++ 中 fill() 的使用_(一维/二维数组/vector)

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;
  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
C++,有几种方法可以初始化一个二维vector数组。 一种方法是使用Fill Constructor。你可以使用以下代码初始化一个M行N列的二维vector数组: ``` #define M 4 #define N 4 std::vector<std::vector<int>> matrix(M, std::vector<int>(N, 0)); ``` 这个方法可以一步完成初始化,推荐使用。 另一种方法是使用C++的Initializer lists。你可以使用以下代码初始化一个二维vector数组: ``` std::vector<std::vector<int>> matrix { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; ``` 这个方法使用了大括号来初始化每一行的元素,每一行之间用逗号分隔。 还有一种方法是使用两步初始化。你可以先创建一个包含N个元素的一维vector,然后再使用这个一维vector初始化二维vector数组。以下是示例代码: ``` std::vector<int> row(N, 0); std::vector<std::vector<int>> matrix2(M, row); ``` 这个方法需要先创建一维vector,然后再使用这个一维vector初始化二维vector数组。 以上是几种常用的初始化二维vector数组的方法。你可以根据具体的需求选择适合的方法进行初始化。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [怎样初始化二维vector](https://blog.csdn.net/qq_35987777/article/details/105905452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [二维vector初始化的几种方法](https://blog.csdn.net/qq_38860340/article/details/122701770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值