gpt4 book ai didi

c++ - 错误 "xxxx"没有命名类型

转载 作者:可可西里 更新时间:2023-11-01 14:59:25 25 4
gpt4 key购买 nike

我在尝试编译以下代码时遇到问题:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>

using namespace std;

map<char, int> mapDial;

mapDial['A'] = 2;

int main()
{

cout << mapDial['A'] << endl;
return 0;
}

编译器给了我一个错误:'mapDial' does not name 类型错误。我是 c++ 的新手,真的不知道这里发生了什么。这里有人可以帮我解决这个问题吗?谢谢!!

最佳答案

你不能在全局范围内执行任意表达式,所以

mapDial['A'] = 2;

是非法的。如果你有 C++11,你可以这样做

map<char, int> mapDial {
{ 'A', 2 }
};

但如果您不这样做,则必须从 main 调用初始化函数以按照您想要的方式进行设置。您还可以查看带有迭代器的 map 的构造函数,并将其与函数中的数组一起使用以初始化 map ,例如

map<char, int> initMap() {
static std::pair<char, int> data[] = {
std::pair<char, int>('A', 2)
};

return map<char, int>(data, data + sizeof(data) / sizeof(*data));
}

map<char, int> mapDial = initMap();

关于c++ - 错误 "xxxx"没有命名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com