begin process at 2010 02 10 06:27:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

parcours MAP STL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

parcours MAP STL

vendredi 18 août 2006 à 14:10:31 | parcours MAP STL

Sk8yo

bonjour,


j'utilise une structure map.
je la parcours et j' "erase()" a la volée
 est ce que cela est correct ou est ce que je fais une grosse bétise?
parce que une fois mon élagage fait ce qui reste n'est pas tres coherent





vendredi 18 août 2006 à 17:17:44 | Re : parcours MAP STL

luhtor

"Erasé" à la volé, c'est tjs délicat. Avec les listes, on y arrive en utilisant une boucle while puisque la fonction erase retourne un itérateur sur la case suivante, mais quand je regarde le header de map, la fonction erase retourne rien. Donc je doute que ton itérateur soit encore valide (l'itérateur en argument est une copie donc aucune chance de le modifier).

Il me parait plus prudent de stocker les clefs dans une liste et de répasser une seconde fois apres, mais question performance, ca n'a plus rien à voir.


vendredi 18 août 2006 à 17:44:41 | Re : parcours MAP STL

Sk8yo

c'est bien ce que je pensait.
est ce qu'il y aurai pas moyen de gérer les itérateur du genre:

iterateur it1=map.begin();
iterateur it2;

while(it1!=map.end()){
    if(condition pour erase ok){
        it2=it1;
        map.erase(it1);
        it2++;
    }
    else{
        it1++;
    }
}

???
vendredi 18 août 2006 à 17:46:00 | Re : parcours MAP STL

Sk8yo

le probleme etant que je ne paux pas me permettre une deuxieme passe sur mon container
ça me double ma complexité et ce n'est malheuresement pas exeptable
vendredi 18 août 2006 à 18:25:03 | Re : parcours MAP STL

luhtor

Oue j'avais deja essayer le double itérateur, mais il me semble que ca fouarait :) Mais ca serait plutot:
    if(condition pour erase ok){
        it2=it1;
        it2++;
        map.erase(it1);
        it1 = it2;
    }
    else{
        it1++;
    }

C'est à (ré)essayer, puisque les itérateurs sont en gros "des pointeurs" donc ca devrait pouvoir marcher.
samedi 19 août 2006 à 21:25:28 | Re : parcours MAP STL

Sk8yo

salut
bon et bien je viens de tester et ça marche parfaitement
merci encore luhtor


Cette discussion est classée dans : map, parcours, stl


Répondre à ce message

Sujets en rapport avec ce message

STL map et plusieurs types de valeurs ? [ par RV2931 ] Bonjour à tous,J'ai découvert récemment les STL C++ car je souhaite retrouver un outils permettant de retrouver la puissance et la flexibilité des tab [STL] parcours de liste. [ par herlockg ] Bonjour,Je voudrais pouvoir parcourir une liste d'objet de type personne et récupérer un des objets de ma liste pour la mettre dans un objet (de même error __declspec(dllimport) lié STL ?? [ par Loki6 ] bonjour tout le monde, alors voilà à la génération de mon projet, étape édition de liens, j'ai une tonne deerror LNK2001: symbole externe non résolu " stl fstream [ par gamemonde ] bonjour je fais un project et je voudrais savoir si la classe fstream est compatible linux sinon doisje utiliser la struct FILEmerci junior STL : trier une map OU ordre d'affichage des éléments d'une map [ par julien_boss ] Bonsoir, j'ai une map déclarée ainsi : map mapCstes; CSTEVALUE est une structure perso : struct CSTEVALUE { double val; string name; }; Je utilisation de la stl vector + la stl pair [ par anthony65 ] Bonjour,je voudrais savoir comment je peux lire les elements qui se trouve dans mon vector.Dans mon vector j'ajoute des pair, mon probleme est que je Parcours de fichier [ par mmx1 ] Bonjour, j'ai un petit code qui prend en paramètre un fichier txt et qui créer un fichier du même nom mais en .rawje voudrais ne plus utiliser ces par Conteneur map [ par daddycool76 ] Bonjour, je débute en c++ et je morfle pas mal.Voila mon problème : je souhaite stocker des objets dans un conteneur map (là ça va..). J'aimerai ensui Lecture fichier impossible avec SDL [ par CCJ ] Hello.j'utilise SDL pour me faire un petit jeu 2D. Seulement je recontre actuellement un petit probleme. Il semblerait en effet qu'il bloque l'utilisa Question instanciation [ par statquant ] Hello Je me pose une petite question. La classe ci dessous possede une methode public inlinée( on s'en fout) et static qui s'appelle GetInstance() 1.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales