begin process at 2012 05 30 07:23:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Question simple, STL c++, ( indexation d'objet )


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Question simple, STL c++, ( indexation d'objet )

mercredi 8 juin 2005 à 16:08:23 | Question simple, STL c++, ( indexation d'objet )

Wiiip

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 ;-)

Wiiip - petit programmeur '^^
mercredi 8 juin 2005 à 16:56:10 | Re : Question simple, STL c++, ( indexation d'objet )

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Pour le premier problème, c'est une map qu'il te faut (un arbre binaire quoi): map<string, object*>
La recherche est dichotomique, comme dans un vector trié, mais ca convient mieux si tu fais beaucoup de suppressions et d'insertions.


mercredi 8 juin 2005 à 18:19:13 | Re : Question simple, STL c++, ( indexation d'objet )

Wiiip

Merci !
Par contre, comme je ne réussi pas bien à comprendre leurs explications.

L'insertion est faite avec ma_map["Victo Hugo"]=un_objet_qui_vous_veut_du_bien; c'est très simple ^^

L'accès se fait tout simplement par ma_map["John Lennon"]
-> il revoit NULL s'il n'y a pas "John Lennon" dans la map ?

le parcours se fait tout simplement avec
for(iterator my_iterator = ma_map.begin ; my_iterator.j'ai_un_suivant(); my_iterator++){
cout<< my_iterator.first; }
-> questions :
-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.)

Merci !

Wiiip - trallalla 0:-)

mercredi 8 juin 2005 à 18:38:16 | Re : Question simple, STL c++, ( indexation d'objet )

vecchio56

Administrateur CodeS-SourceS
Pour savoir si un objet est dans la map, utilise find.
Les boucles sont de la forme:
for(iterator my_iterator = ma_map.begin() ; my_iterator != ma_map.end(); my_iterator++)
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).

lundi 17 mars 2008 à 12:23:06 | Re : Question simple, STL c++, ( indexation d'objet )

ramziatb

bonjour !
je suis débutante est l'indéxationn avec C++ m'intérèse
SVP aidez moi



Cette discussion est classée dans : objet, simple, index, pointeur, stl


Répondre à ce message

Sujets en rapport avec ce message

Je ne sais pas coment faire, mais c'est tous simple [ par Ricpperso ] Bonjour,Je ne sais pas comment faire pour insérer un objet OLE, automatiquement c'est à dire, sans le selectionnez et cliquez sur OK, de la fenêtre In problème de pointeur et d'objet pointé [ par leptit ] Bonjour, Je vous présente le problème en C:struct assoc { int l, *n ; }*n est un pointeur vers une alloc dynamique de memoirestyle tableau d'entier.Je question simple pointeur fseek fread [ par hvb ] hello tous, voila je connais vraiment pas tres bien le C, et je dois analyser un code pour le retranscrire en vb.net ou delphi.ma question est la suiv Simple question [ par DeAtHCrAsH ] J'ai un pointeur sur une chaine de caractère.Comment plcer le pointeur a la fin de la chaine sans passer par une boucle du genre:char *pString = "Simp PROB avec pointeur THIS [ par jfk20004 ] Salut,tout ce que je sais à propos du pointeur this:-c'est un pointeur sur l'adresse d'un objet-il permet des appels en cascade de fonctionsquelqu'un Server UDP simple [ par zeldoi5 ] Bonjour tout le monde, je viens à vous pour vous demander votre aide car je comprends pu rien.... Je dois faire un server UDP qui : - se connecte ave déterminer dynamiquement le type d'un objet pointé [ par feanor11 ] Sachant qu'un pointeur est capable de pointer sur un objet d'un type dérivé à son type respectif (si A est dérivée de B, A* peut pointer sur un objet Probleme de Débutant [ par Dorgendubal ] Hello à tous,j'ai déjà programmé en C++ et même avec des envirronements graphiques (comme QT sous linux) mais jamais avec Visual C++.Alors j'ai un pro test du pointeur [ par jeltimed ] bonjour .en fait je suis débutant en c++ et je voulais juste savoir est ce que ya moyen d'appliquer la logique suivant en c++: si pointeur pointe Creer un catalogue d'objets pour un noyau d'application [ par rick_moins_moins ] Bonjour à tous, merci pour ceux qui pourront m'apporter leur aide. J'ai un projet c++ à faire et je n'arrive pas à le faire (il me reste qu'10 jours p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,402 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales