为何使用unordered_set会报错啊
在如Luogu ACWING,还有自己的OJ上都可以编译正确,就C++过不了




为何使用unordered_set会报错啊
在如Luogu ACWING,还有自己的OJ上都可以编译正确,就C++过不了




以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据你提供的信息和截图,这里有几个可能的原因导致使用 unordered_set 时出现编译错误:
头文件未包含:确保你的代码中包含了 <unordered_set> 头文件。这个头文件是使用 unordered_set 容器所必需的。
宏定义问题:你的代码中有一个宏定义 #define int long long,这实际上将 int 重新定义为了 long long 类型。这可能会导致编译器在解析 1000000LL 时出现问题,因为 LL 后应该紧跟一个 long long 类型的字面量。如果 int 被重新定义,编译器可能无法正确解析这个字面量。
作用域问题:错误 'unordered_set' was not declared in this scope 和 's' was not declared in this scope 表明可能存在作用域问题。确保 unordered_set 和变量 s 在使用前已经在正确的作用域内被声明。
编译器或环境问题:如果代码在其他平台上可以编译,但在特定环境下出现问题,可能是编译器设置或环境配置的问题。检查你的编译器是否支持 C++11 或更高版本,因为 unordered_set 是 C++11 中引入的。
为了解决这些问题,你可以尝试以下步骤:
<unordered_set> 而不是 <set>,因为 unordered_set 是 C++11 新增的容器。#define int long long。如果你需要进一步的帮助,可以提供更多的代码上下文,我会尽力提供更具体的解决方案。