fill()、fill_n()与memset()函数的区别

  • fill  

    在头文件<algorithm>里。

    按照数组的始末位置以一个数组元素为单位赋值,将区间内的每一个元素都赋值为val

     代码:fill(vector.begin(), vector.end(), val);

  • fill_n()  

    在头文件<algorithm>里。

    从当前起始点开始,将之后的cnt个元素赋值为val

    注意:不能在没有元素的空容器上调用fill_n()函数

  • 代码:fill(vector.begin(), cnt, val);
  • memset()  

    在头文件<cstring>里。

    将已开辟的内存空间arr的前cnt个字节的值设为值val

  • 代码 : memset(a,inf,sizeof(a)); //a为数组首地址;也可是数组任意一位地址eg:a+3
  • 可复制 0, -1 ,inf(最大值) // const int inf=0x3f3f3f3f
#include<iostream>
#include<queue>
#include<cstring>
#include<vector>
using namespace std;
const int inf=0x3f3f3f3f;
int main()
{
    int a[10]={0};
    memset(a+3,-1,sizeof(a));
    for(int i=0;i<10;i++)
    printf("%d ",a[i]);
    return 0;
}

 

posted @ 2022-05-09 17:40  xxj112  阅读(99)  评论(0)    收藏  举报