Je créé une carte comme ceci: std::map<int, std::string> mapID;
Carte en C++ donne la clé et obtenir la chaîne
INPUT: mapID [1] = "! String";
et je veux imprimer élément avec la clé est le s. Par exemple
cout << "The string is : " << mapID.at(s)->second << endl;
OU
cout << "The string is : " << mapID.find(s)->second << endl;
Mais j'ai l'erreur
error: no matching function for call to ‘std::map >::at(std::string&)’
MISE À JOUR:
while(getline(file,s))
{
cout<< s << endl;
number = atoi(s.c_str());
cout << "The string is: " << mapID.at(number)<< endl;
}
s'il vous plaît montrer un [mcve]. '1' n'est évidemment pas une chaîne, donc il y a quelque chose de louche mais il faut voir plus de code pour reproduire le problème – user463035818
mapID [1] va créer un élément à 1 s'il n'existe pas – rak007
Votre code listé ne peut pas produire le donné Message d'erreur. S'il vous plaît nous montrer le code réel, ou le message d'erreur réel. (De préférence en tant que [mcve] que nous pouvons couper et coller dans (par exemple) cpp.sh.) –