Acceder aux attributs d'un objet dans une liste

Acceder aux attributs d'un objet dans une liste - C++ - Programmation

Marsh Posté le 23-05-2010 à 00:05:21    

Bonjour a tous,
 
Je suis débutant en c++ et j'ai un soucis dont je ne trouve la réponse nulle part..
 
Quelle est la syntaxe pour accéder aux attributs des objets contenus dans une liste ?


Message édité par kofra le 23-05-2010 à 00:06:10
Reply

Marsh Posté le 23-05-2010 à 00:05:21   

Reply

Marsh Posté le 23-05-2010 à 08:34:38    

t'as liste c'ets une std::liste ?

Reply

Marsh Posté le 23-05-2010 à 23:47:32    

oui

Reply

Marsh Posté le 24-05-2010 à 09:11:48    

en supposant que tu parcours ta liste avec un itérateur, ça donne un truc genre:
 

Code :
  1. struct foo
  2. {
  3.    void bar() {}
  4. };
  5. std::list<foo> l;
  6. // Remplissage de la liste (sans interet)
  7. for(int i=0;i<5;++i) l.push_back(foo());
  8. // Parcours:
  9. std::list<foo>::iterator cur = l.begin();
  10. std::list<foo>::iterator end = l.end();
  11. while( cur != end )
  12. {
  13.   // *cur renvoit uen reference vers l'objet courant
  14.   // a c emoment .bar() ets un appel de methode classique
  15.     (*cur).bar();
  16.   // On avance dans la liste
  17.    cur++;
  18. }

Reply

Marsh Posté le 24-05-2010 à 11:50:01    

Tiens, tu lui a pas sorti un boost::std::access::iterator::list::value

Reply

Marsh Posté le 24-05-2010 à 15:16:44    

GrosBocdel a écrit :

Tiens, tu lui a pas sorti un boost::std::access::iterator::list::value


et toi t'as pas sortie de post qui sert à quelquechose. Comme quoi :o

Reply

Marsh Posté le 24-05-2010 à 23:41:47    

GrosBocdel a écrit :

Tiens, tu lui a pas sorti un boost::std::access::iterator::list::value


marrant!


---------------
.
Reply

Marsh Posté le 28-05-2010 à 06:59:26    

Merci beaucoup Joel :jap:
J'avais bidouiller un truc bizar avec des references et du coup j'avais des copies des objets donc c'était pas ultra pratique.
Ca devrais aller mieux maintenant. :)


Message édité par kofra le 28-05-2010 à 07:01:48
Reply

Marsh Posté le 28-05-2010 à 07:28:57    

les iterateurs (et maintenant les range) sont la bonne abstraction. Tous les conteneurs standard fournissent ce genre d'interface

Reply

Marsh Posté le 03-06-2010 à 10:56:29    

Et moi je ne comprend toujours pas pourquoi certaines personnes ( cependant forte gentille) se tue a repondre a des question que n'importe quel cours c++ est capable d'offrir

Reply

Marsh Posté le 03-06-2010 à 10:56:29   

Reply

Marsh Posté le 03-06-2010 à 12:45:52    

Parce que malheureusement n'importe quel cours de c++ n'est pas capable d'offrir une solution propre. Va voir sur d'autres forums, les réponses à certaines questions montrent que les personnes concernées sont loin d'avoir suivi des cours/conseils de qualité.


---------------
deluser --remove-home ptitchep
Reply

Marsh Posté le 03-06-2010 à 13:17:36    

Ce n'est pas totalement faux en effet. Cela dit je ne pense pas que la doc C++ soit une source d'erreurs ou de confusion. Un petit tour dans cette doc permettrait de :
 
1) repondre a la question de maniere rapide
2) economiser un thread dans le forum
3) economiser l'energie des personne bienveillante pour s'attaquer a des problemes plus consequent
 
Apres biensur ce n'est que mon avis, mais il est vrai que je vois les choses sous cet angle.


Message édité par nightwar le 03-06-2010 à 13:18:12
Reply

Marsh Posté le 03-06-2010 à 13:33:07    

Oui c'est possible.
 
Cela dit moi j'ai appris la programmation à l'arrache dans mon coin et sans avoir posé des questions débiles et "évidentes" sur ce forum, je n'aurais jamais appris ni à programmer ni à chercher dans une doc. Ou alors beaucoup plus tard à l'IUT...
Et puis après tout, rien n'oblige les gens à gaspiller leur énergie sur des questions qu'ils trouvent évidentes ;)


---------------
deluser --remove-home ptitchep
Reply

Marsh Posté le 03-06-2010 à 13:39:00    

C'est vrai. Moi aussi j'ai appris a programmer a l'arrache, les API me repoussait, les cours etait minables. Finalement on se rend compte que en utilisant une doc (bien faite) on en apprend vite et rapidement. C'est dans cette optique que je preconise a tous les programmeur de s'attacher aux API avant de poster. Apres tout, la documentation + debug represente 70% du temps passer sur un programme. Autant en profiter :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed