I encountered a problem when tried compiling the following code:
#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;
}
The compiler gave me a error: ‘mapDial’ does not name a type error. I am new to c++ and really don’t know what is going on here. Can anyone here help me to solve this? Thanks!!
You cannot execute arbitrary expressions at global scope, so
is illegal. If you have C++11, you can do
But if you don’t, you’ll have to call an initialisation function from
mainto set it up the way you want it. You can also look into the constructor ofmapthat takes an iterator, and use that with an array in a function to initialise the map, e.g.