STL map et plusieurs types de valeurs ?

Résolu
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 18 oct. 2007 à 21:06
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 19 oct. 2007 à 12:45
Bonjour à tous,

J'ai découvert récemment les STL C++ car je souhaite retrouver un outils permettant de retrouver la puissance et la flexibilité des tableaux de hashages qu'on trouve en perl. Est-ce possible ???

J'ai vu que la STL map correspond plus ou moins à cela, mais étant en C++, il est fortement typé, à tel point que l'ont peut apparemment ne définir qu'un couple de type pour les clé valeur, cad,
std::map<string,int>,std::map<string,string> ou map<string,foat>, bref, si je veux stocker des valeurs de types diverses et variés, je fais comment ??? std::map<string,void> ???

Y a-t-il d'autres moyens ?, autres que de se la faire soi même

Merci

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
A voir également:

3 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
19 oct. 2007 à 12:45
Yop!
Le seul moyen est, comme je l'ai indiqué, de faire de l'héritage.
Sinon, si vraiment tu es obligé (mais vraiment, hein! parce que ce n'est pas propre du tout et c'est source de bug), tu fais une map avec des void*
Mais c'est déconseillé!!!! Le meiux, c'est de t'en passer et de faire autrement...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
3
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
19 oct. 2007 à 08:44
Hello,
Tu peux mettre ce que tu veux dans une map: <truc, machin>, <voiture, cheval>,... Pas obligatoirement des string.
Par contre, une fois ta map défini, tu dois respecter les styles. Genre, si tu fais une map <voiture, cheval>, tu ne pourras pas ajouter un chien par exemple... Sauf si cheval et chien hérite d'un même objet "animal" et donc ta map devient <voiture, animal *>

Houlà....je ne sais pas si j'ai été clair, là...
Dis-moi

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
19 oct. 2007 à 11:28
Si si,

justement très clair, c'est justement le
Par contre, une fois ta map défini, tu dois respecter les styles

qui me dérange

Les tableaux de hashage Perl sont une merveille, tellement qu'ils servent à gérer les classe en perl.
Le this est un tableau de hashage pouvant contenir toutes les variables de ton instance sans se soucier du type.

Une cellule d'un tableau de hashage peut contenir une chaîne de caractère, un nombre, mais aussi et surtout, un autre tableau de hashage, ce qui permet de te faire quasiment une petite base de donnée dans ton programme avec une facilité qui me manque dans tous les autres langages que j'ai pu essayer.

Genre tu peux faire :

my %hash; //déclaration d'un tabeau de hash
my %hash2=("Avis"=>"Code-Sources, C'est génial !!"); // déclaration et initialisation d'un autre tableau

hash{"C"}{"ti"}="Pas Merveilleux ??"



hash{"liste de langage"}{"nombre"}=6
hash{"liste de langage"}{"essayés"}=("ASM","C","C++","C#","php","Perl","Tcl");
hash{"liste de langage"}{"pas encore essayés"}=("Java","Python","...");
hash{"Conclusion"}=hash2;

print hash{"Conlcusion"}{"Avis"};



donne :

>Code-Sources, C'est génial !!

Bon après, j'ai bien conscience que Perl n'est pas fortement typé voir pas du tout, ce qui explique...

Mais, y aurait-il un moyen de retrouver ça ???

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
0
Rejoignez-nous