社区讨论

S 第 34 题有歧义

学术版参与者 7已保存回复 11

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
11 条
当前快照
1 份
快照标识符
@mhj9lzm1
此快照首次捕获于
2025/11/03 22:58
4 个月前
此快照最后确认于
2025/11/04 06:00
4 个月前
查看原帖
rt
那道题是选择最短路初始化时加入堆中的元素,选项分别为 0,1,-1,false
此题显然要选一个含义为假的内容,可以发现,0false 都符合要求,且此时 false 不为初始化列表窄转换
CPP
#include <bits/stdc++.h>
using namespace std;
struct S{
	int a,b,c;
	bool operator < (const S &b) const{
		return a<b.a;
	}
}; 
int main(){
	priority_queue<S> q;
	q.push({2,1,0});
//	q.push({2,1,false});
	auto [u,v,w]=q.top();
	cout<<u<<" "<<v<<" "<<w;
	return 0;
}
运行发现无论保留注释还是注释前一行,都能正常运行(输出 2 1 0,没有警告)
所以我认为 A 和 D 均为正确选项

回复

11 条回复,欢迎继续交流。

正在加载回复...