begin process at 2012 05 28 22:59:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Conversion d'un itérateur en pointeur


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

Conversion d'un itérateur en pointeur

mercredi 28 février 2007 à 09:26:49 | Conversion d'un itérateur en pointeur

loicus

Bonjour,

j'aimerais réussir a convertir un itterateur en un pointeur, je m'explique
j'utilise un objet CandidateCollection qui en gros est un vecteur de Candidate (mais je n'ai acces que a l'itterateur sur ce vecteur)

donc je fais :

CandidateCollection::const_iterator GenJetsIt1 = candidates->begin();

mais j'aimerais passé a une fonction non pas l'ittérateur, mais l'object Candidate*

donc j'aimerais faire un truc du genre

Candidate* cand1 = (Candidate*) GenJetsIt1;
mais ca ne marche pas évidement ;)

est ce que vous pourriez me dire comment faire ca proprement?

merci d'avance


loicus
mercredi 28 février 2007 à 10:32:04 | Re : Conversion d'un itterateur en pointeur

turnerom

CandidateCollection::iterator GenJetsIt1 = candidates->begin(); Candidate* cand1 = GenJetsIt1; Le const en moins en fait !
mercredi 28 février 2007 à 10:47:16 | Re : Conversion d'un itterateur en pointeur

luhtor

Réponse acceptée !
Et si avec ce que te propore turnrom, ya un pb de cast. La version "propre" (ca dépend des gouts), c'est:
Canditate * cand1 = GenJetsIt1.operator ->();
mercredi 28 février 2007 à 11:08:36 | Re : Conversion d'un itterateur en pointeur

turnerom

Je vois pas ou il peut y avoir un pb de cast. Et je ne comprend pas vraiment ce que tu essai de faire ?
mercredi 28 février 2007 à 11:19:50 | Re : Conversion d'un itterateur en pointeur

loicus

Bhen en faite ta solution ne marche pas chez moi turnerom...

parceque je 'ai pas acces au simple iterator.... jsuis obligé de passé par le const_iterator
c'est une classe hyper protégé... c'ets chiant...
sinon d'habitude, j'utilise effectivement ta solution...
merci quand même

sinon luhtor, je connaissais pas ce truc...
et ca marche nikel...

je retiens...

encore merci

loicus
mercredi 28 février 2007 à 16:23:00 | Re : Conversion d'un itterateur en pointeur

vecchio56

Administrateur CodeS-SourceS
Autro solution qui me semble plus logique:

Candidate* cand1 = &*GenJetsIt1;

_____________________________________
Un éditeur de ressources gratuit pour Windows

mercredi 28 février 2007 à 17:29:29 | Re : Conversion d'un itérateur en pointeur

loicus

Candidate* cand1 = &*GenJetsIt1;
ne marche pas non plus ds ce cas ci.., ne me demande pas pourquoi... il aime pas....
mercredi 28 février 2007 à 17:53:06 | Re : Conversion d'un itérateur en pointeur

turnerom

pour la meme raison que moi, c'est un const itératoe, on ne peu pas manipulé l'adresse, mais uniquement l'objet pointé, d'ou la solution de luhtor
mercredi 28 février 2007 à 18:41:25 | Re : Conversion d'un itérateur en pointeur

vecchio56

Administrateur CodeS-SourceS
En fait on n'a pas la même erreur. Moi c'est a cause du const, mais toi c'est carrément pas bon (test sous VS2005)

  list<int> l;

  list<int>::iterator i1 = l.begin();
  list<int>::const_iterator i2 = l.begin();

  int* pi;

  pi = i1; // erreur
  pi = &*i1; // ok

  pi = &*i2; // erreur a cause du const
  pi = (int*)&*i2; // ok


Pour le problème de départ, il y a deux solution vraiment propres:
-Tu modifie l'objet: définir un iterator et non un const_iterator
-Tu ne le modifies pas. Dans ce cas:
  const Candidate* cand1 = &*GenJetsIt1;

_____________________________________
Un éditeur de ressources gratuit pour Windows

mercredi 28 février 2007 à 21:10:08 | Re : Conversion d'un itérateur en pointeur

luhtor

la version   "&(*GenJetsIt1)" <=> &(GenJetsIt1.operator *())" est strictement identique à "GenJetsIt1.operator ->()" toute facon.




Cette discussion est classée dans : conversion, pointeur, candidate, itérateur, itterateur


Répondre à ce message

Sujets en rapport avec ce message

Conversion d un float [ par Seth ] Comment arrondir un float vers le nombre le plus proche.Exemple : (float)2.8 -> 3 ! (float)2.3 -> 2 Pointeur et référence [ par kawazaki ] Bonjour je commence a programmer en c++ je voudrais comprendre quand j'utilise les pointeurs et les références ainsi que les déclarations:*var**var&va Conversion de types de données... [ par nullspace ] J'ai jamais réussis à trouver une bonne solution pour convertir un type de variable dans une autre variable ayant un autre type.Par exemple...si j'ai Demande source en C conversion IEEE754 AU SECOUR!!!!!! [ par Benny54 ] Si vous avez quoi que ce soit sur la conversion IEEE754 en langage C envoyez le moi je suis au bord du GOUFFRE!!!!! Pointeur qui fait planter Windows !!! [ par coyito ] Salutquand je défini moi même une addresse pour un pointeur (exemple pour lire n'importe ou dans la mémoire) j'ai une erreur windows "access violation source en c conversion Urgent [ par fleur ] je suis super débutante. Je cherche en C un code pour convertir un décimal en hexadécimal.Je vous remercie d'avance pour votre aide...j'en ai vraiment Conversion de type [ par Dlofret ] Bonjour, J'aimerais une façon simple d'afficher une donnée de type float dans un format string. Comment dois-jem m'y prendre ?? Conversion int -> char * [ par Xentor ] Bonjour tout le monde, et merci de lire mon message parce que je suis un vrai débutant !Je voudrais savoir comment convertir un entier en tableau de c Conversion de donnée [ par Johjo ] Salut tout le monde, je cherche à convertir une valeur char en valeur float et inversement de float en char. L'equivalent de Val et Str en basic.Merci pb de conversion de chaine de caractéres [ par Thanatos ] Bonjour,Je désirerais faire un programme sur les fonctions logiques de base : un utilisateur rentre une fonction logique et le programme lui sort la t


Nos sponsors


Sondage...

Comparez les prix

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 : 0,562 sec (4)

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