IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

Iterateur sur une list


Sujet :

SL & STL C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut Iterateur sur une list
    Bonjour,

    mon problème est le suivant : j'aimerais parcourir une list avec un iterator, non const car j'appelle des méthodes des objets contenus dans la collection, et tout se passe très bien jusqu'à l'exécution où, au 2e parcours de la collection (car j'itère à l'intérieur d'une autre boucle), le programme plante et j'obtiens un zouli message d'erreur :

    Debug assertion failed !
    ...
    Expression : list iterator not dereferencable
    ...
    Voici mon code :

    d'abord où j'initialise la list :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    list<SjSl_Balloon> ballons;
    SjSl_Timer timer;
     
    srand(time(NULL));
    for(unsigned int x=0; x<dim[0]; x++){
    	for(unsigned int y=0; y<dim[1]; y++){
    		for(unsigned int z=0; z<dim[2]; z++){
    			int pos[3]={x, y, z};
    			for(unsigned int nbBallon=0; nbBallon<SjSl_Random::GetInt(0, 3); nbBallon++){
    				SjSl_Balloon tmp(timer, pos);
    				ballons.push_back(tmp);
    			}
    		}
    	}
    }
    et ensuite où je l'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    list<SjSl_Balloon>::iterator itB;
    list<SjSl_WeatherStation>::iterator itS;
    list<SjSl_WeatherStation> stations=earth.GetStations();
    while(true){
    	for(unsigned int d=0; d<31; d++){
    		for(unsigned int h=0; h<24; h++){
    			for(unsigned int mn=0; mn<60; mn++){
    				for(unsigned int s=0; s<60; s++){
    					int currentTime[4]={d, h, mn, };
    					timer.SetTime(currentTime);
                                                                    _sleep(10);
    				}
    			}
    			itB=ballons.begin();
    			for(; itB!=ballons.end(); itB++){
    				(*itB).Move(earth);
    				cout<<*itB<<endl;
    			}
    		}
    		itS=stations.begin();
    		for(; itS!=stations.end(); itS++){
    			(*itS).BulletinMeteo();
    			cout<<"Bulletins météo rangés dans le répertoire ulletins"<<endl;
    		}
    	}
    }
    Je n'arrive vraiment pas à comprendre d'où le problème peut venir car tout se passe au premier de la list ballons. En ce qui concerne la liste stations, je n'ai pas encore pu tester puisque le programme n'arrive pas jusque là...

  2. #2
    Membre actif
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Points : 216
    Points
    216
    Par défaut
    Est ce que tes méthodes modifient ton conteneur ? Car dans ce cas les itérateurs deviennent invalides, et ne peuvent plus être déréférencés.

    PS : utilises ++it au lieur de it++ dans le for, ça ne change pas grand chose mais évite de faire une copie inutile.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    En fait, dès lors que le conteneur ballons est initialisé et remplit (donc dans la première boucle), il n'est plus modifié par aucune méthode.

    Je vais essayer en mettant ++it.

    Merci pour ton aide !

    Edit : testé avec ++it au lieu de it++ et... ben rien ne change à l'exécution Toujours ce foutu problème.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Bonjour,
    à quoi ressemble le createur par recopie de SjSl_Balloon ??
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int currentTime[4]={d, h, mn, };
    il ne manque pas quelque chose?

    que fait la fonction "(*itB).Move(earth);" ?

  5. #5
    Membre actif
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par Atharendil Voir le message
    Je vais essayer en mettant ++it.

    Merci pour ton aide !

    Edit : testé avec ++it au lieu de it++ et... ben rien ne change à l'exécution Toujours ce foutu problème.
    Juste par rapport à ça : ce n'était absolument pas censé réglé le problème, juste une petite habitude à prendre qui ne mange pas de pain pour optimiser très légèrement ton programme.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Ok paco tout conseil est bon à prendre, j'essaierais d'y penser

    Mongaulois-> En fait, pour le tableau, c'est juste un pb de recopie dans le forum, le compilo aurait pas aimé sinon
    Il manquait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int currentTime[4]={d, h, mn, s};
    Voilà le constructeur par recopie de SjSl_Balloon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SjSl_Balloon::SjSl_Balloon(const SjSl_Balloon& balloon):
    timer(balloon.timer), hygrometer(balloon.hygrometer), windGauge(balloon.windGauge), thermometer(balloon.thermometer), humidityValue(balloon.humidityValue), windValue(balloon.windValue), temperatureValue(balloon.temperatureValue), balloonNumber(balloon.balloonNumber)
    {
    	for(int i=0;i<3;i++)
    	{
    		position[i] = balloon.position[i];
    	}
     
    	for(int i=0;i<3;i++)
    	{
    		windDirection[i] = 0;
    	}
    	numberOfBalloon++;
    }
    Et en ce qui concerne la fonction Move, elle modifie la plupart des attributs d'un SjSl_Balloon et en particulier met à jour la position puis fait appel à des méthodes de earth (qui est un SjSl_Atmosphere).

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    ? bizarre pour une recopie...

    Sinon ça a l'air ok.

    As tu essayé sans appeler Move ?? (y aurait il pas des division par windDirection , des pointeurs ou un parcoure mémoire dans cette fonction?)

    Pour bien comprend :
    Le premier parcoure de la list ne pose pas de problème,
    mais le second oui. C'est bien cela?

    Tu est sous visual?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Oui petite maladresse dans le code pour le constructeur, c'est rectifié

    Par-contre, j'ai testé sans appeler la méthode Move et effectivement, le programme tourne sans planter ! C'est déjà un bon point, mais je comprends toujours pas pourquoi

    Pour que tu voies comment fonctionnes Move, je te mets le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    void SjSl_Balloon::Move(SjSl_Atmosphere atmosphere)
    {
                 SjSl_Zone balloonZone = GetZone(atmosphere);
     
    	int* tabWindDirectionZone;
    	tabWindDirectionZone = balloonZone.GetWindDirection();
     
    	/* Mettre les valeur de temp, humidité, etc... Si les appareils de mesure existent bien */
    	if(hygrometer==true)
    	{
    		humidityValue = balloonZone.GetHumidityValue();
    	}
     
    	if(windGauge==true)
    	{
    		windValue = balloonZone.GetWindValue();
    	}
     
    	if(thermometer==true)
    	{
    		temperatureValue = balloonZone.GetTemperatureValue();
    	}
     
    	for(int i=0;i<3;i++)
    	{
    		windDirection[i] = tabWindDirectionZone[i];
    	}
     
    	SaveInformation();
     
    	/* teste si la zone possède une station météo => envoie les infos récoltés des différentes zones */
    	if(balloonZone.GetOwnsStation() == true)
    	{
    		TransmitInformation(balloonZone.GetWeatherStation());
    	}
     
     
    	//On recopie la position
    	int tmp[3];
    	for(int i=0;i<3;i++)
    	{
    		tmp[i] = position[i];
    	}
     
    	if(atmosphere.PositionExists(tmp)==true)
    	{
    		//trouver une formule qui permet le déplacement du balloon
    		int positionX;
    		int positionY;
    		int positionZ;
     
    		//INUTILE : récupérer la zone correspondante a une position
     
     
    		//POURRI !!!!
    		for(int i=0;i<3;i++)
    		{
    			position[i] = position[i] + windDirection[i];
    		}
    	}
     
     
    }
    En fait la mise à jour de la position n'est pas encore finalisée, mais je vois pas en quoi ce qui est écrit pourrait produire un bug à l'exécution.

    En tout cas, merci pour ton aide mongaulois

    Petit édit : je travaille sous visual, et plus précisément sous visual C++ express 2008

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void SjSl_Balloon::Move(SjSl_Atmosphere atmosphere)
    {
                 SjSl_Zone balloonZone = GetZone(atmosphere);
     
    	int* tabWindDirectionZone;
    	tabWindDirectionZone = balloonZone.GetWindDirection();
    Est tu sur du constructeur par recopie de SjSl_Atmosphere ??
    ce ne serait pas mieux comme cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void SjSl_Balloon::Move(const SjSl_Atmosphere &atmosphere)
    Juste dans ce bout de code est tu sur que tabWindDirectionZone soit valide et que c'est bien un tableau de trois element puisque tu fait un peu plus loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=0;i<3;i++)
    	{
    		windDirection[i] = tabWindDirectionZone[i];
    	}

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    En fait, SjSl_Atmosphere n'a pas de constructeur par recopie. Je n'en avais pas besoin dans l'appli donc pas créé, est-ce que ça pourrait être du à ça ?

    Le tableau tabWindDirectionZone possède exactement 3 éléments et ça ne change rien, étant donné qu'il est récupéré à partir d'un attribut d'une autre classe via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int* tabWindDirectionZone;
    tabWindDirectionZone = balloonZone.GetWindDirection();
    J'ai testé sans utiliser ce tableau, en le supprimant, et j'ai toujours la même erreur. Par-contre, qqc qui m'a paru bizarre, si j'essaie de faire un delete[] sur ce tableau, le programme plante dès le démarrage. Et pour répondre à ta question de tout à l'heure (désolé, je viens de voir ), dans ce cas-là il ne fait même plus 1 parcours de liste, contrairement à ce qui se passe sans le delete[].

  11. #11
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Atharendil Voir le message
    En fait, SjSl_Atmosphere n'a pas de constructeur par recopie. Je n'en avais pas besoin dans l'appli donc pas créé, est-ce que ça pourrait être du à ça ?
    Probable. Ca dépend de ce qu'il y as dans SjSl_Atmosphere.
    Essai peut etre de passer ton atmosphère par reference
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void SjSl_Balloon::Move( SjSl_Atmosphere & atmosphere)
    Citation Envoyé par Atharendil Voir le message
    Le tableau tabWindDirectionZone possède exactement 3 éléments et ça ne change rien, étant donné qu'il est récupéré à partir d'un attribut d'une autre classe via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int* tabWindDirectionZone;
    tabWindDirectionZone = balloonZone.GetWindDirection();
    balloonZone utilise SjSl_Atmosphere c'était pour çà. A mon avis tes pas trés loin du problème.

    Pourquoi l'histoire du delete [] ??

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    J'ai testé le programme en commentant toutes les parties dans le Move ou balloonZone est utilisé et, how strange !, ça ne plante pas. Tu dois certainement avoir raison quand tu dis que c'est du au constructeur par recopie de l'Atmosphere.

    Du coup, j'ai créé ce constructeur et mis des const SjSl_Atmosphere& dans Move et GetZone mais ça ne change toujours rien au problème

    Si tu veux voir mon constructeur par recopie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SjSl_Atmosphere::SjSl_Atmosphere(const SjSl_Atmosphere& _atmo):
    zones(_atmo.zones)
    {
    	for(unsigned int i=0; i<3; i++){
    		dimension[i]=_atmo.dimension[i];
    	}
    }
    Le delete[], c'était car je pensais que le bug pouvait venir du pointeur pas libéré, mais apparemment ce n'est pas le cas.

  13. #13
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Atharendil Voir le message
    J'ai testé le programme en commentant toutes les parties dans le Move ou balloonZone est utilisé et, how strange !, ça ne plante pas. Tu dois certainement avoir raison quand tu dis que c'est du au constructeur par recopie de l'Atmosphere.
    Soit ça soit SjSl_Zone balloonZone = GetZone(atmosphere);

    Citation Envoyé par Atharendil Voir le message
    Du coup, j'ai créé ce constructeur et mis des const SjSl_Atmosphere& dans Move et GetZone mais ça ne change toujours rien au problème
    C'est un bon début

    Citation Envoyé par Atharendil Voir le message
    Si tu veux voir mon constructeur par recopie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SjSl_Atmosphere::SjSl_Atmosphere(const SjSl_Atmosphere& _atmo):
    zones(_atmo.zones)
    {
    	for(unsigned int i=0; i<3; i++){
    		dimension[i]=_atmo.dimension[i];
    	}
    }
    Est tu sur du constructeur de recopie de zones ??

    Citation Envoyé par Atharendil Voir le message
    Le delete[], c'était car je pensais que le bug pouvait venir du pointeur pas libéré, mais apparemment ce n'est pas le cas.
    Si tu ne l'avais pas libéré, ça n'aurai pas fait un plantage, mais une fuite mémoire

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Est tu sur du constructeur de recopie de zones ??
    En fait, zones n'est pas un objet d'une classe que j'ai créé mais une list, je n'ai donc pas vraiment d'autre choix que de le recopier tel quel.

    Sinon, quand je remplace GetZone(atmosphere) par une zone par défaut (donc toujours la même), il n'y a plus aucun pb mais lorsque je met directement le code de GetZone dans Move, ça plante sans même avoir le temps d'effectuer un seul parcours (ou un seul mais en partie).

    Il doit certainement y avoir un problème avec le code de GetZone ou peut-être encore dans GetZoneByIndex qui est utilisé par GetZone :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SjSl_Zone& SjSl_Balloon::GetZone(const SjSl_Atmosphere& atmosphere)
    {
    	int indice = atmosphere.convertPosToInd(position);
    	SjSl_Zone balloonZone = atmosphere.getZoneByIndex(indice);
    	return balloonZone;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const SjSl_Zone& SjSl_Atmosphere::getZoneByIndex(int index) const
    {
    	const_iter it=zones.begin();
     
    	int i=0;
    	while(i<index && it!=zones.end()){
    		it++;
    		i++;
    	}
    	return *it;
    }

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Atharendil Voir le message
    En fait, zones n'est pas un objet d'une classe que j'ai créé mais une list, je n'ai donc pas vraiment d'autre choix que de le recopier tel quel.
    Une list de quoi ??
    Citation Envoyé par Atharendil Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const SjSl_Zone& SjSl_Atmosphere::getZoneByIndex(int index) const
    {
    	const_iter it=zones.begin();
     
    	int i=0;
    	while(i<index && it!=zones.end()){
    		it++;
    		i++;
    	}
    	return *it;
    }
    Ici tu peut sans problème accéde a zone.end() qui n'est pas un élément. Et ho, tien c'est quoi ton erreur
    essaie cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const SjSl_Zone& SjSl_Atmosphere::getZoneByIndex(int index) const
    {
    	const_iter it=zones.begin();
     
    	int i=0;
    	while(i<index && it!=zones.end()){
    		it++;
    		i++;
    	}
    	return it==zones.end() ? *zones.rbegin() : *it;
    }
    A mon avis, il te manque une gestion d'erreur. Peut être qu'utiliser try catch et les exceptions?

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Une list de quoi ??
    Oups pardon , c'est une list de SjSl_Zone donc déclarée : list<SjSl_Zone> zones;

    Ok je vais essayer avec le code que tu me donnes, je n'avais pas fait attention au fait qu'on puisse accéder au zone.end().

  17. #17
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Atharendil Voir le message
    Oups pardon , c'est une list de SjSl_Zone donc déclarée : list<SjSl_Zone> zones;

    Ok je vais essayer avec le code que tu me donnes, je n'avais pas fait attention au fait qu'on puisse accéder au zone.end().
    Si le code ne change rien. Est tu sur du constructeur de recopie de SjSl_Zone?

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    That's good !

    Apparemment, c'était du au fait que j'accédais à qqc qui n'était pas un Balloon et que je voulais ensuite afficher comme tel. Normal que le programme gueule

    Un grand merci pour toute ton aide, mongaulois, tu m'as sorti d'une belle merdouille là (et je pense que j'y aurais pataugé encore longtemps).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/09/2010, 18h48
  2. [List] Iterateur sur une liste de type défini
    Par Wookai dans le forum SL & STL
    Réponses: 4
    Dernier message: 12/11/2007, 20h45
  3. pb avec iterateur const sur une list STL
    Par Muetdhiver dans le forum SL & STL
    Réponses: 4
    Dernier message: 14/01/2007, 16h39
  4. Réponses: 3
    Dernier message: 06/09/2006, 18h59
  5. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo