-
memset()函数
能赋值0和-1, 十六进制表示数, char字符。基于内存赋值, 不能用于vector初始化
头文件: cstring 或 string.h
用法: memset(数组名, 赋值, 赋值内存大小)
优点:速度优于fill
样例:
int main()
{
int a[110];
memset( a, 0, sizeof(a) );
return 0;
}
-
fill()函数
可以赋值任何值, 且能给vector赋值
头文件: algorithm
用法: fill(数组名, 数组名 + 赋值长度, 赋值内容);
样例:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
// 一维数组赋值
int v[100];
char c[100];
string s[100];
fill(v, v + 100, -1); //整形
for (int i = 0; i < 100; i++) {
cout << v[i] << " ";
}
cout << endl;
fill(c, c + 100, 'k');//字符
for (int i = 0; i < 100; i++) {
cout << c[i] << " ";
}
cout << endl;//字符串
fill(s, s + 100, "mushan");
for (int i = 0; i < 100; i++) {
cout << s[i] << " ";
}
// vector赋值
vector<int>k(101,0);
fill(k.begin(), k.end(), 10);
for (int i = 0; i < 100; i++) {
cout << k[i] << " ";
}
// 二维数组赋值
int p[10][10];
fill(p[0],p[0]+10*10,-1);
for (int i = 0; i < 10; ++i){
for (int j = 0; j < 10 ; ++j){
printf("%d ",p[i][j] );
}
printf("\n");
return 0;
}