加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:23:41 所属栏目:百科 来源:网络整理
导读:尝试编译以下代码时遇到问题: #include iostream#include cstdio#include cstring#include algorithm#include mapusing namespace std;mapchar,int mapDial;mapDial['A'] = 2;int main(){ cout mapDial['A'] endl; return 0;} 编译器给了我一个错误:“mapD
尝试编译以下代码时遇到问题:
#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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读