Erreur "xxxx" ne nomme pas un type
J'ai rencontré un problème lorsque j'essaye de compiler le code suivant:
#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;
}
Le compilateur m'a donné une erreur: "mapDial' n'est pas le nom d'un type d'erreur. Je suis novice en c++ et ne sais vraiment pas ce qui se passe ici. Quelqu'un sait-il m'aider à résoudre ce problème? Merci!!
source d'informationauteur Lamian
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas executer les expressions à portée globale, de sorte
est illégal. Si vous avez le C++11, vous pouvez le faire
Mais si vous ne le faites pas, vous aurez à appeler une phase d'initialisation de la fonction de
main
pour configurer la façon dont vous le voulez. Vous pouvez aussi regarder le constructeur demap
qui prend un itérateur, et de l'utiliser avec un tableau dans une fonction pour initialiser la carte, par exempleVous ne pouvez pas avoir des déclarations comme
mapDial['A'] = 2;
à portée globale. Ils doivent être à l'intérieur d'une fonction.Lorsque vous déclarez une variable dans la portée globale, vous ne pouvez faire de l'initialisation. E. g,
Vous ne pouvez pas faire des déclarations comme:
Donc, je voudrais corriger le code avec: