List de l'aide svp

Signaler
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005
-
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005
-
Bonjour voilà je dois créer une liste et de la en faire l'affichage, mais cette affichage doit être fait particulierement.
Je m'explique je voudrais afficher la list à l'envers c'est à dire en partant du dernier element jusqu'au premier.
Voilà

Cela commencerais ainsi :

// List
list plt;
//iterator
list::iterator iter;
Mais pour le reste je seche je me doute qu'il va y avoir une boucle for pour récupérer les element de la list ect mais bon.

0 au faite cette liste est rempli vous inquiété pas... Mais elle est rempli ailleur par une class.

25 réponses

Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
Il faut que tu fasse un truc du genre:
for (iter=plt.end(); iter!=plt.begin(); iter--)
{...}

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

oui ca je savais qu'il fallais faire -- mais il doit y avoir autre chose du stylle back() car la ca marche pas
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
Montre-nous ton code d'affchage pour voir...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

void Clone::disp()
{
//iterator
list<Rule>::iterator iter;
cout << "essai" << endl;
for(iter=clone.begin();iter!=clone.end();iter--)
{
cout << "essai => " << iter->ext << endl;
}

}
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
Euh.... normal :P
Inverses donc end() et begin() et tu verras, ça ira beaucoup mieux...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

Et non cela ne fonctionne pas il me donne pas pourautant la liste en partant de la fin .... Je deseperer avec le C++ à force
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
Ok. Tu peux utiliser la fonction reverse() qui te renverse la liste (le dernier devient le premier,..)

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

et comment se présente la syntaxe ?
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
ta_list.reverse();

Je suis gentil: d'habitude, je réponds "MSDN"...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

ok merci et serais tu comment on copie une listou une partie d'une list fonction copie() un truc de se genre ??

Merci encore ! Je débute en C++ et je t'avourais que je suis pas du tout à l'aise avec se langage... Mais bon on se fait à tout.
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

enfiate je t'explique à au faite ca foncitonne il ma bien inversé ma liste. Voici comment elle se presente :

02.2 = 2;
02.3 = 3;
02.1 = 3;
02.1 = 2;
02.1 = 1;

Et en faite je les inversé cela donne donc le résultat ci-dessus, et maintenant je voudrais supprimer de la liste tous les éléments qui on la meme valeur pour ne garder que la premiere je te montre dasn l'exemple de ci-dessus. En réalité de la liste je ne voudrais que cela :

02.2 = 2;
02.3 = 3;
02.1 = 3;

on supprime 02.1 = 2;
02.1 = 1;
Je ne prend que le dernier de la famille 02.1

Voilà j'espere avoir é t preci moi en totu cas je flanche.
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
Essaie pluttôt cela, ça t"évitera de faire une copie et c'est ce que tu veux (affichage à partir du dernier)

list<Rule>::reverse_iterator riter;
for (riter=clone.rbegin(); riter!=clone.rend(); riter++)
{...}

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
Et désolé de t'avoir embrouillé avec la fonction reverse()... :(

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

Et pour mon probleme tu aurais une idée sur le dernier poste sinon oui sa marche avec le revers_iterator...
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
tu as la fonction unique() qui te supprime les doublons adjacents. Ce qui suppose que ta liste soit triée (avec sort() par exemple).
En gros, "10 10 20 10" deviendra (sans tri): "10 20 10"
"10 10 20 10" devient (en triant): "10 10 10 20" et donc "10 20"

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

ok mais il te garde quel 10 le premier ou le deuxieme et cela se presente comment le sort et unique() ca se passe comment.
T vraiment sympa
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

Ben le sort sera utile car le resultat dasn la list esty déjà trié donc je veux juste supprimer les doublon mais je connias pas du totu la fonciton unique .
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
MSDN!!
ta_liste.unique();
Dans le cas de valeurs adjacentes identiques, cette fonction garde la 1ère occurence et supprime les autres

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
45
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
30 novembre 2005

ben non ce"la ne marche pas voilà ce que j'ai fais

Ma liste dasn ma classe c'est list lt;

dasn ma fonction :

list::reverse_iterator it;
lt.unique();
for(it=lt.rbegin();it!=lt.rend();it++)
{
cout << "affichage de la liste" << it << endl;
}

il me marque

Instantiated from here
error : n,o match for operator=='in...
Messages postés
14981
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
1 mars 2021
94
cout << "affichage de la liste" << *it << endl;

Sinon, chez moi, ça marche très bien...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...