关于编译
  • 板块学术版
  • 楼主__er
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/11/3 17:15
  • 上次更新2023/10/27 04:24:52
查看原帖
关于编译
713955
__er楼主2022/11/3 17:15

多测清空的时候,我写的代码是:

void clean() {
	for (int i = 1; i <= 5000; i++) {
		edge[i].e.clear();
		edge[i].b = false, edge[i].dis = 0x3f3f3f, edge[i]. vis = 0;
	}
	while (!q.empty()) {
		q.pop();
	}
}

为什么会爆警告?edge确保已经开到5001了,是不是编译器有问题……

单个结构体的定义如下:

struct Edge {
	vector<pair<int, int>> e;
	int dis = 0x3f3f3f, vis;
	bool b;
} edge[5001];

然后运行结果是错的,代码应该没有写挂

2022/11/3 17:15
加载中...