Les List en C++
Castial
Messages postés
73
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Voila mon problème.
J'apprends à utiliser les conteneurs list en C++, et pour cela j'ai codé un petit bout de programme sous Linux ( qui fonctionnait très bien ). Problème, chez moi, j'ai Seven, et quand je veux reprendre le TP, je me retrouve avec un plantage du programme à l'affichage de ma list.*
D'où pourrait provenir le problème à votre avis ?
Merci d'avance !!!
Voici mon code source :
#include <stdio.h>
#include <string.h>
#include <list>
#include <iostream>
using namespace std;
int main()
{
string trolol, biglol, masterlol;
list <string> listeTest;
list <string>::iterator IterateurListe;
cout << " ajout des elements : " << endl;
cin >> trolol; cin >> biglol; cin >> masterlol;
listeTest.push_back(trolol);
listeTest.push_back(biglol);
listeTest.push_back(masterlol);
cout << " Les elements on t il bien ete ajoutes ? " << endl;
advance (IterateurListe,1);
listeTest.erase(IterateurListe);
for (IterateurListe = listeTest.begin();IterateurListe!=listeTest.end();IterateurListe++)
{
cout << *IterateurListe << endl;
}
return 0;
}
Voila mon problème.
J'apprends à utiliser les conteneurs list en C++, et pour cela j'ai codé un petit bout de programme sous Linux ( qui fonctionnait très bien ). Problème, chez moi, j'ai Seven, et quand je veux reprendre le TP, je me retrouve avec un plantage du programme à l'affichage de ma list.*
D'où pourrait provenir le problème à votre avis ?
Merci d'avance !!!
Voici mon code source :
#include <stdio.h>
#include <string.h>
#include <list>
#include <iostream>
using namespace std;
int main()
{
string trolol, biglol, masterlol;
list <string> listeTest;
list <string>::iterator IterateurListe;
cout << " ajout des elements : " << endl;
cin >> trolol; cin >> biglol; cin >> masterlol;
listeTest.push_back(trolol);
listeTest.push_back(biglol);
listeTest.push_back(masterlol);
cout << " Les elements on t il bien ete ajoutes ? " << endl;
advance (IterateurListe,1);
listeTest.erase(IterateurListe);
for (IterateurListe = listeTest.begin();IterateurListe!=listeTest.end();IterateurListe++)
{
cout << *IterateurListe << endl;
}
return 0;
}
A voir également:
- Les List en C++
- List disk - Guide
- Directory list & print - Télécharger - Divers Utilitaires
- Liste déroulante en cascade - Guide
- Rm-014s+ code list - Forum Téléviseurs
- Mailing list gmail - Guide
4 réponses
Castial
Messages postés
73
Statut
Membre
5
J'ai déjà recompilé, je vais publier mon code ça sera mieux
Ah c'est bon en fait, c'est mon erase qui était mauvais, va savoir pourquoi ?
Je vais tenter de refaire ça sous Seven,
Merci quand même au gens qui on pris la peine de lire mon post et de commencer à chercher.
Je vais tenter de refaire ça sous Seven,
Merci quand même au gens qui on pris la peine de lire mon post et de commencer à chercher.
Chez moi j'ai ces erreurs à la compilation :
Remarque :
Quand tu utilises advance (IterateurListe,1), IterateurListe n'est pas initialisé !
Il est préferable d'utiliser les const_iterator autant que tu peux.
error C2679: '>>' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::string' error C2679: '<<' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::basic_string<_Elem,_Traits,_Ax>'
Remarque :
Quand tu utilises advance (IterateurListe,1), IterateurListe n'est pas initialisé !
Il est préferable d'utiliser les const_iterator autant que tu peux.
Mhhh je vois ce n'est pas bête.
Mais je ne vois pas comment utiliser le const_iterator.
-> list <string>::const_iterator IterateurListe;
Je l'ai remplacé dans ma déclaration et le compilo gueule.
Mhh je vais essayer de voir la syntaxe.
Merci en tout cas ;)
Mais je ne vois pas comment utiliser le const_iterator.
-> list <string>::const_iterator IterateurListe;
Je l'ai remplacé dans ma déclaration et le compilo gueule.
Mhh je vais essayer de voir la syntaxe.
Merci en tout cas ;)
Voici une version de ton code qui fonctionne chez moi :
#include <iostream>
#include <string> // ne pas confondre avec "string.h"
#include <list>
int main()
{
std::string trolol, biglol, masterlol;
std::list<std::string> listeTest;
std::cout << "Ajout des elements :" << std::endl;
std::cin >> trolol;
listeTest.push_back(trolol);
std::cin >> biglol;
listeTest.push_back(biglol);
std::cin >> masterlol;
listeTest.push_back(masterlol);
std::list<std::string>::const_iterator
IterateurListe = listeTest.begin(); // initialisation indispensable
std::advance(IterateurListe,1);
listeTest.erase(IterateurListe);
std::cout << std::endl;
for(IterateurListe = listeTest.begin();
IterateurListe!= listeTest.end();
IterateurListe++)
std::cout << *IterateurListe << std::endl;
return 0;
}