错误:显示“class std::unordered_map<int, char> 没有名为”contains“的成员

Error: It shows 'class std::unordered_map<int, char>' has no member named 'contains'

提问人:Mini-Touch 提问时间:9/2/2023 最后编辑:ks1322Mini-Touch 更新时间:9/2/2023 访问量:85

问:

我最近一直在学习地图的功能。当我尝试使用包含时,它一直显示错误。代码如下:

#include <iostream>
#include <unordered_map>

using namespace std;

int main()
{
    unordered_map<int, int> count = {{1, 5}, {2, 5}};
 
    for (int i=1;i<=2;i++)
    {
        if (count.contains(i))
            cout << i << ": Found\n";
        else
            cout << i << ": Not found\n";
    }
}

我一直在寻找解决方案,我更新了 g++ 的版本并更改了 .json,但它不起作用。 g++ 的版本为 13.1.0 c_cpp_properties.json: “cppStandard”: “c++23”,

我不明白为什么它会出错。我错过了什么吗?这是我在这里的第一个问题。如果你觉得这个问题太傻了,请不要生气

C++ 编译器错误 语法错误 20 C++23

评论

0赞 ks1322 9/2/2023
看起来 vscode 配置有问题。
1赞 n. m. could be an AI 9/2/2023
c_cpp_properties.json与运行编译器无关,它仅用于智能感知。您需要将实际选项传递给实际的编译器,可能是通过戳其他一些.配置 VSCode 可能很棘手。如果你想学习C++,我的建议是使用其他IDE,或者不使用IDE。.json
0赞 john 9/2/2023
您需要将 C++20 编译器选项添加到 tasks.json。如前所述,c_cpp_properties.json 与编译无关。
0赞 john 9/2/2023
现在,为什么 VSCode 要求您在两个不同的地方指定像 C++ 版本这样基本的东西,这是只有 VSCode 开发人员才能回答的问题。但你至少应该阅读 VSCode 文档,其中解释了这个要求。
0赞 Jerry Jeremiah 9/13/2023
tasks.json用于编译器。 用于智能感知。c_cpp_properties.json

答: 暂无答案