c – 错误“xxxx”不指定类型

前端之家收集整理的这篇文章主要介绍了c – 错误“xxxx”不指定类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试编译以下代码时遇到问题:
#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”没有指定类型错误.我是新来的,真的不知道这里发生了什么.这里有人可以帮我解决吗?谢谢!!

解决方法

所以你不能在全局范围内执行任意表达式
mapDial['A'] = 2;

是非法的如果你有C 11,你可以做

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

但是如果你不这样做,你必须调用main的初始化函数来设置它的方式.您还可以查看使用迭代器的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&C++相关文章