Voici mon code.unordered_map <(int ou string), MyClass> Comment accéder et imprimer les éléments de MyClass
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
class Token {
string strVar;
int intVar;
bool boolVar;
public:
Token(string strVar, int intVar ,bool boolVar):
strVar(strVar), intVar(intVar) ,boolVar(boolVar){
}
string getStrVar() {return this->strVar;}
int getIntVar() {return this->intVar;}
bool getBoolVar() {return this->boolVar;}
};
int main(){
unordered_map<int , int> mymap;
//I WANT -> unordered_map<int , Token> mymap;
mymap[1]= 11;
//I WANT -> // mymap[1] = Token("string1", 1, true);
mymap[2]= 12;
//I WANT -> // mymap[2] = Token("string2", 2, false);
mymap[3]= 13;
//I WANT -> //mymap[3] = Token("string3", 3, true);
int tk = mymap[1];
//I WANT -> //Token tk = mymap[1];
mymap[3] = tk;
for (auto& x: mymap) {
cout << x.first << ": " << x.second << endl;
//I WANT -> print all Var from MyClass,
//for example, x.second.getStrVar() << x.second.getIntVar() << x.second.getBoolVar() << endl;
}
return 0;
}
SORTIE Atual:
3: 11
2: 12
1: 11
Comme je l'ai expliqué dans les commentaires, comment puis-je utiliser la fonction <> unordered_map avec ma classe et boucle à travers vos éléments afin que je puisse utiliser les méthodes de la classe???
J'ai besoin de cette sortie:
string1 1 true
string2 2 true
string1 1 true
Vous devriez être en mesure de le faire plus ou moins comme vous l'avez fait dans les parties en commentaire. Quel est exactement le problème que vous rencontrez lorsque vous l'essayez de cette façon? –
@SeanBurton Quand j'ai couru j'ai eu cette erreur suivante: pour (auto & x: mymap) { XXX cout << x.first << ":" << x.second << endl; } 45 | erreur: impossible de lier 'std :: basic_ostream' lvalue à 'std :: basic_ostream &&' | Et parfois ouvrir une archive "/ include/tuple" C: \ Program Files (x86) \ CodeBlocks \ MinGW \ lib \ gcc \ mingw32 \ 4.9.2 \ include \ C++ \ tuple | 1102 | erreur: aucune correspondance fonction pour appel à 'Token :: Token()' | –
Guttizin
Pouvez-vous poster le code complet et exact qui produit réellement l'erreur ... –