Tangml666 2024-06-21 16:03 采纳率: 0%
浏览 191

为何使用unordered_set会报错啊

为何使用unordered_set会报错啊

在如Luogu ACWING,还有自己的OJ上都可以编译正确,就C++过不了

img

img

img

img

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-06-21 16:03
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据你提供的信息和截图,这里有几个可能的原因导致使用 unordered_set 时出现编译错误:

    1. 头文件未包含:确保你的代码中包含了 <unordered_set> 头文件。这个头文件是使用 unordered_set 容器所必需的。

    2. 宏定义问题:你的代码中有一个宏定义 #define int long long,这实际上将 int 重新定义为了 long long 类型。这可能会导致编译器在解析 1000000LL 时出现问题,因为 LL 后应该紧跟一个 long long 类型的字面量。如果 int 被重新定义,编译器可能无法正确解析这个字面量。

    3. 作用域问题:错误 'unordered_set' was not declared in this scope's' was not declared in this scope 表明可能存在作用域问题。确保 unordered_set 和变量 s 在使用前已经在正确的作用域内被声明。

    4. 编译器或环境问题:如果代码在其他平台上可以编译,但在特定环境下出现问题,可能是编译器设置或环境配置的问题。检查你的编译器是否支持 C++11 或更高版本,因为 unordered_set 是 C++11 中引入的。

    为了解决这些问题,你可以尝试以下步骤:

    • 确保使用 <unordered_set> 而不是 <set>,因为 unordered_set 是 C++11 新增的容器。
    • 检查宏定义是否影响了代码的解析,考虑移除或修改 #define int long long
    • 确保所有变量在使用前都已经被声明,并且作用域正确。
    • 如果问题依旧存在,尝试在不同的编译器或环境中编译代码,以确定是否是特定编译器的问题。

    如果你需要进一步的帮助,可以提供更多的代码上下文,我会尽力提供更具体的解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月21日