Wiiip
Messages postés15Date d'inscriptionjeudi 26 juin 2003StatutMembreDernière intervention 4 avril 2006
-
8 juin 2005 à 16:08
ramziatb
Messages postés1Date d'inscriptionvendredi 6 juillet 2007StatutMembreDernière intervention17 mars 2008
-
17 mars 2008 à 12:23
Bonjour, merci,
Je suppose que ce n'est pas bien compliqué, et que l'on doit pouvoir faire cela facilement avec la stl.
Je cherche à faire un index pour un objet.
En fait, c'est tout simple. J'ai un objet (l'objet se reference nom, et
un pointeur sur l'objet), et je veux faire un index de ces objets.
-> Il faut que j'insere mon couple (nom, pointeur) dans un index
trié sur le nom. (je fourni les fonctions, egal() et plus_grand(), de
comparaison entre 2 noms )
-> Il faut que je demande s'il y a un couple portant un nom donné,
et si oui, me renvoyer le pointeur. (et si non, vous vous en doutez, je
vais le creer et l'inserer)
-> Il faut parcourir entierement mon index, (donc faire
for(taille_index) { index[i]...}), avoir la taille de l'index et
acceder individuellement à chaque element. (vi, un iterateur en somme)
Voila, je n'ai juste pas envie de coder cela, alors que le vector ou un autre truc doit me faire cela facilement.
Sinon, je peux aussi faire un vector, parcourir à chaque fois tout le
vector pour chercher le nom, mais si on me fourni une fonction plus
rapide pour chercher le nom, j'achete, j'ai besoin d'optimiser un peu.
un detail, il se trouve que le "nom" de mon objet est un tableau de
nombres, vous n'avez pas à le savoir, je fais mes fonctions de
comparaison entre 2 tableaux, ce tableau peut aussi etre vu comme un
nombre géant (bien plus grand qu'un double) dont chaque chiffre est
l'un des nombres dans une base nombre_max (ca c'est utile pour faire
une fonction de hashage), bref on s'en fiche, c'est juste que si vous
me trouvez un truc genial pour trier des "Durant Jules" et "Hugo
Victor", cela ne m'arrangera pas particulierement.
Un autre detail, c'est plutot tout bete, mais d'un autre coté, je ne
sais pas programmer, ni programmer objet, donc bien dire quel include,
et quelle fonction utiliser, on m'envoyer une url avec le cours, ca
marche aussi :p
Merci, j'ai parlé beaucoup, mais c'est pour etre plus clair ;-)
-quel est le vrai nom de la fonction "j'ai_un_suivant()" ? :D
-(facultatif) pourquoi "first", pourquoi ce nom ?
-(facultatif) comment fait il ses tests d'egalité entre les clefs ? Il
regarde la valeur de tous les bits de l'objet clef ? Comment fait il si
l'objet est un char*, ou un int*, ou un objet_inconnu ? S'il compare
l'adresse, cela ne va pas marcher ^^ (or ma_map["Victor Hugo"], ca
marche, enfin, je crois, j'espere.)
first c'est le premier élément (la clé, ici l'index, c'est celui qui
permet de trier les éléments, c'est donc lui qui doit pouvoir être
comparé, tout ceci est logique)
Avec des char* il va comparer l'adresse en effet, c'est pas forcément
ce que l'on veut, tu devrais donc créer ta classe, et map utilisera
alors operator= pour tester l'égalité (ici tu a autant intérêt à
utiliser string).