[C++] liste chainée de struct avec la STL

liste chainée de struct avec la STL [C++] - C++ - Programmation

Marsh Posté le 05-01-2004 à 20:49:59    

Bah voilà c'est un truc plutôt bidon. Au début je voulais simplement faire une liste chainée d'objets avec un struct, mais quand je fais le push_back ça ne fonctionne pas :cry: . Quelque chose ne va pas dans mon code mais quoi ? :(  
 

Code :
  1. typedef struct {
  2.     int numTache;
  3.     int duree;
  4. } Sommet;
  5. int main()
  6. {
  7.       int nbsommets;
  8.       int nbpred;
  9.       int i,j;
  10.       cout<<"Combien de sommets contient le graphe? ";
  11.       cin>>nbsommets;
  12.       std::list<Sommet> L[nbsommets];
  13.       for (i=0;i<nbsommets;++i) {
  14.           cout<<"Durée de la tâche n°"<<i<<" : ";
  15.           cin>>S->duree;
  16.           S->numTache=i;
  17.           L.push_back(*S); // c'est là que ça passe pas...
  18.       }
  19. }


 
Si vous voyez un truc qui cloche... merci d'avance !  :hello:

Reply

Marsh Posté le 05-01-2004 à 20:49:59   

Reply

Marsh Posté le 05-01-2004 à 21:05:02    

C'est quoi S ? :)

Reply

Marsh Posté le 05-01-2004 à 21:07:51    


 
oups il manque juste une ligne mais ça vient pas de là puisqu'elle y est dans mon source.
 
Au milieu des déclarations j'ai déclaré un pointeur sur un sommet:
 
Sommet *S;

Reply

Marsh Posté le 05-01-2004 à 21:10:35    

Tu alloues de la mémoire à chaque fois ?

Reply

Marsh Posté le 05-01-2004 à 21:13:05    

cay normal le tableau de liste?
la non allocation du pointeur S [:autobot]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 05-01-2004 à 21:13:16    

Evadream -jbd- a écrit :

Tu alloues de la mémoire à chaque fois ?


 
hum oui j'ai mis un Sommet *S=new Sommet;

Reply

Marsh Posté le 05-01-2004 à 21:14:11    

schnapsmann a écrit :

cay normal le tableau de liste?
la non allocation du pointeur S [:autobot]


 
le tableau de liste oui c'est fait exprès
 
La non allocation... euh bah c'est encore la *fameuse ligne* que j'avais oublié de noter sur le forum :whistle:

Reply

Marsh Posté le 05-01-2004 à 21:14:56    

C'est un tableau de liste que tu as déclaré là.
 
Edit : grillé


Message édité par Evadream -jbd- le 05-01-2004 à 21:15:15
Reply

Marsh Posté le 05-01-2004 à 21:15:20    

nan mais dis moi, ça compile pas ton truc là :o
 
L[0].push_back ...


Message édité par schnapsmann le 05-01-2004 à 21:15:50

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 05-01-2004 à 21:16:39    

schnapsmann a écrit :

nan mais dis moi, ça compile pas ton truc là :o
 
L[0].push_back ...


 
aaaaaaaahhhhhhhhhh  [:rofl]  
 
mais shui vraiment trop une bouse !!!  :D  
 
Merci  :sol:

Reply

Marsh Posté le 05-01-2004 à 21:16:39   

Reply

Marsh Posté le 05-01-2004 à 21:19:43    

merci de ce foutage de gueule [:ojap]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 05-01-2004 à 21:40:12    

cin>>nbsommets;
     
          std::list<Sommet> L[nbsommets];
 
 
n'est pas du C++
 
     
std::vector< std::list<Sommet> > L(nbsommets);
 
est ok

Reply

Marsh Posté le 05-01-2004 à 21:55:15    

ah bon si on veux un tableau d'objet en C++, on est obligé de passer par les vector ??

Reply

Marsh Posté le 05-01-2004 à 22:00:33    

ben non, mais ou t'as vu que les vla existaient en C++ ? cette fonctionnalité du C99 ajustement était rejetée pour favoriser l'usage de std::vector<> qui est bien plus sur, robuste et fonctionnel

Reply

Marsh Posté le 05-01-2004 à 23:15:05    

Par vla, taz veux dire variable length array, je suppose.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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