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< vector<string> >


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut vector< vector<string> >
    Bonjour,
    j'utilise pour la première fois les vecteurs et je dois faire une mauvaise manipulation puisque ma fonction plante.

    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
    void repartition(string tabTriplet[][3], vector< vector<string> > tabReparti)
    {
    	for(int i=0; i<64; i++)
    	{
    		vector<string> temp;
    		bool trouve = false;
    		for(int j=0; j<tabReparti.size() && trouve==false; j++)
    		{
    			if( tabTriplet[i][2] == tabReparti[j][0] )
    				trouve = true;
     
    		}
    		if( trouve == false )
    		{
    			// si on rencontre cette chaine binaire pour la premiere fois
    			temp.push_back(tabTriplet[i][2]); // chaine binaire
    			temp.push_back(tabTriplet[i][1]); // valeur pour laquelle on a cette chaine
    			tabReparti.push_back(temp);
    		}
    		else
    		{
    			// la chaine est deja été rencontrée
    			tabReparti[j].push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin
    		}
    	}
    }
    avec une debug le plantage survient à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabReparti[j].push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin
    mais je ne vois pas ce qui est mal écrit
    J'ai essayé de remplacé tabReparti[j] par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    			try
    			{
    				tabReparti.at(j).push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin
    			}
    			catch ( const std::out_of_range & )
    			{
    				cout << "at() a levé une exception std::out_of_range\n";
    			}
    et ma fonction va dans le catch, mais je ne comprend pas pourquoi

    Auriez vous une idée ?
    merci

  2. #2
    screetch
    Invité(e)
    Par défaut
    j est local a la boucle for. essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int j;
    for(j = 0; j < ....) etc etc

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut
    merci xD

  4. #4
    Membre expérimenté
    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
    Par défaut
    euh une petite chose... si le but de ta fonction est de modifier ton vector, n'oublie pas de la passer par référence avec un &.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Note aussi que "j" est incrémenté encore une dernière fois après avoir trouvé la case. Si la case trouvée était la dernière, en sortie de boucle ton "j" dépasse hors du tableau, si je puis dire.

    Si tu veux que "j" garde sa valeur lorsque la case est trouvée, un "break" dans la boucle serait une solution.

    Carl

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

Discussions similaires

  1. Concaténer deux vectors de vector<vector<string>>
    Par maud4274 dans le forum Langage
    Réponses: 21
    Dernier message: 08/08/2014, 09h03
  2. la difference entre 2 vector remplie par des string
    Par zouhair_tdi dans le forum C++
    Réponses: 8
    Dernier message: 26/06/2014, 17h56
  3. Problème de cast en transformant un Vector en tableau de String
    Par montabou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/11/2006, 18h58
  4. [Collections] Conversion de Vector en tableau de String
    Par java_math dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 06/06/2004, 12h55
  5. [Vector] classe Vector et exception
    Par Nanoua dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 23/04/2004, 12h37

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