【C++】fill函数,fill与memset函数的区别
1,memset函数
按照字节填充某字符
在头文件< cstring >里面
2,fill函数
按照单元赋值,将一个区间的元素都赋同一个值
在头文件< algorithm>里面
3,因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为只有char型占一个字节),也可以用来填充bool型数组。 而如果填充int型数组,除了0和-1,其他的不能。因为只有00000000 = 0,-1同理,如果我们把每一位都填充“1”,会导致变成填充入“11111111”
memset的使用方法:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a[5];
char c[5];
bool b[5];
memset(a,0,sizeof(a)); //置0
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
memset(a,-1,sizeof(a)); //置-1
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
memset(c,'a',sizeof(c));//字符串置 a
cout<<c<<endl;
memset(b,true,sizeof(b));//置判断为真
}
而fill函数可以赋值任何,而且使用方法特别简便:
fill(arr, arr + n, 要填入的内容);
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int arr[10];
fill(arr, arr + 10, 2);
return 0;
}