Les List en C++
Castial
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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 TV & Vidéo
- Zn-401s code list - Forum Téléviseurs
4 réponses
Castial
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
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; }