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 :

vector et push_back qui ne fait pas bouge le size


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut vector et push_back qui ne fait pas bouge le size
    Bonjour,

    j'ai un probleme avec un push_back dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    cout<<"size county : "<<(tmp_county->getListDed()).size();
    tmp_county->getListDed().push_back(tmp_ded);
    cout<<"size county : "<<(tmp_county->getListDed()).size()<<endl;
     
    cout<<"size : "<<(tmp_selectedArea->getListRegion()).size();
    tmp_selectedArea->getListRegion().push_back(tmp_region);
    cout<<"size : "<<(tmp_selectedArea->getListRegion()).size()<<endl;
    dans l'absolu la taille devrait changer entre le premier cout et le deuxieme or dans les deux cas la taille reste a zero meme si il execute la procedure et qu'il n'y a pas d'erreur.

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    tu renvoies une référence ? si ce n'est pas le cas tu utilises un objet local détruit après chaque appel

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut
    Exact je viens de m'en rendre compte et j'ai corrige ma classe et ca fonctionne presque (une autre erreur mais je vais tenter de trouver le probleme avant de demander de l'aide )

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut
    bon apres reflexion j'ai encore besoin d'aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    std::vector<region*>::iterator itVectorData;
    for(itVectorData = ( (tmp_selectedArea->getListRegion()).begin() ); itVectorData != (tmp_selectedArea->getListRegion()).end(); itVectorData++)
    {
         cout<<"testQBC";
    }

    (tmp_selectedArea->getListRegion()) retourne un vector<region*>
    en mode debug (tmp_selectedArea->getListRegion()) contient une adresse 0x0044b580 alors qu'il devrait contenir une liste de region non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // get list of region
    vector <region*> selectedArea::getListRegion(void){
    	return listRegion;
    }
    du coup mon iterateur itVectorData vaut :
    CXX0030: Error: expression cannot be evaluated
    et il plante avec le message :
    vecot iterators incompatible.

    si quelqu'un pouvait m'aiguiller un peu je ne serais pas contre
    merci

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut
    Essaye peut-être en renvoyant un const vector<region *> &, ça éviterait de faire une copie à chaque appel de la fonction.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut
    je viens d'essayer avec un vector <region*>& et toujours le meme resultat
    le pire c'est que listRegion est bien rempli quand je verifie le contenu en mode debuggage

    j'ai l'impression que la fonction ne retourne pas le bon truc
    mais en mode debug toujours quand je fais un break sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return listRegion;
    listRegion contient bien
    [1](0x00a09eb8 {id=""Dublin"" name=""Dublin"" listCounty=[1](0x00a09e28 {id=""Fingal"" name=""Fingal"" listDed=[1](0x009fd338 {id="" name="" listPolygone=[1](0x009fd3c8 {center=0x00a09dd0 listPoint={...} }) }) }) })

    mais quand je l'utilise j'ai droit a une adresse et non la ligne du dessus.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2007, 17h03
  2. [Système] bouton qui ne fait pas se que je veut
    Par schats dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2007, 11h17
  3. Qui ne fait pas ce qu'elle est censée faire
    Par mikedavem dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/02/2007, 17h27
  4. Réponses: 2
    Dernier message: 21/04/2006, 14h32
  5. [debutant] page html qui ne fait pas fonctionner la fonction
    Par Battosaiii dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2006, 19h25

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