背景:做题时时常有需要初始化数组,像Dijkstra算法求最短路径,需要初始化数组为无穷大等等
这里简单整理一些memset 对int 数组常用的初始化方法和对long long 数组的最大化(信息学奥赛一本通P462 有关章节) 并给出运行结果
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int a[101][101];
memset(a,0x7f,sizeof(a)); //初始最大化
//tips:也常用0x3f 或0x7fffffff
cout<<a[1][1]<<endl;
memset(a,0,sizeof(a)); //初始化为0
cout<<a[1][1]<<endl;
memset(a,0xaf,sizeof(a)); //初始最小化
cout<<a[1][1]<<endl;
cout<<endl;
long long b[101][101];
memset(b,127,sizeof(b)); //初始最大化
cout<<b[1][1]<<endl;
memset(b,0,sizeof(b)); //初始化为0
cout<<b[1][1]<<endl;
return 0;
}
运行结果如图:
(最大化最小化只是相对而言,看自己所需)

本文介绍了在C++和C语言中使用memset函数初始化数组,特别是针对int和long long类型数组如何设置最大值和最小值的情况。文中通过实例展示了memset在Dijkstra算法等场景的应用,并提供了实际运行结果作为参考。
1745





