[STL] mapper avec des enum
Bonjour, derriere un titre aussi abscons vous devez vous demander ce que je veux faire.
version courte :
J'ai un enum
Code:
1 2 3 4 5
| static enum StringValue { evVal1=1,
evVal2,
evXYZ,
evcoincoin,
evbidule }; |
J'ai aussi des des strings (pour l'instant c'est dans un tableau...)
Code:
std::string trucs[5]={"val1","autre","xyz","panpan","pouet"};
Et j'aimerai bien faire un "map" de ces chaines avec mon enum, sans avoir a me pallucher à la main
Code:
s_mapStringValues[trucs[2]] = evXYZ;
Voilà... si vous avez une idée. (pour l'instant il n'y a que 5 val dans mon example, mais il y en aura plus)
Version longue :
Pour ceux que ca interresse, je suis en train de chercher comment faire des switch avec des std::string.
J'ai trouvé ce lien qui est pas mal : http://www.codeguru.com/Cpp/Cpp/cpp_...icle.php/c4067
Mais je n'aime pas du tout comment ils initialisent leur map, et c'est pour cela que je cherche une manière moins bourrin pour initialiser le map.
sinon le fonctionnement à l'air simple :
Code:
1 2 3 4 5 6 7 8 9
|
static std::map<std::string, StringValue> s_mapStringValues;
// initialisation...
s_mapStringValues[trucs[2]] = evXYZ // etc..
switch(s_mapStringValues[une_string])
{
case evXYZ : // et voilà...
break;
} |
Merci.