Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1569 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  allocation dynamique de vector c++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

allocation dynamique de vector c++

n°2225118
yoruichi7
Posté le 15-04-2014 à 12:14:59  profilanswer
 

Bonjour,
 
Ca fait des heures que je suis sur mon problème, j'ai beaucoup cherché, mais je n'arrive pas à le résoudre.. (c'est sûrement évident, pourtant!)
Je dois lire un fichier qui se présente sous une forme de matrice. Les valeurs d'une ligne correspondent aux caractéristiques d'un individu, en fait (une classe Sample est implémentée pour le décrire)  
J'ai donc créé  une classe ReadingFile, dont l'objet est appelé depuis mon main et ReadingFile crée autant d'individus qu'il y a de lignes.
 
Dans ReadingFile.cpp, je lis chaque ligne et place les valeurs dans un vecteur, un vecteur me permet alors de créer un individu.
 
Cependant, si je ne mets pas les vecteurs en attribut de ma classe ReadingFile, les listes de descripteurs de mes individus sont perdues. Mais je ne peux pas prévoir le nombre de vecteurs dont j'aurai besoin, il faut donc que je les crée dynamiquement.
Si j'utilise le même vecteur pour tous les individus, je vais me retrouver avec des individus ayant tous la même liste de descripteurs.
 
sachant que descList c'est:
vector<Descriptor*> descList;
 
Mon petit bout de code c'est:
 
for(...) {/// tant qu'il y a des lignes à lire
 
for(auto incr: descValues){ // ici je lis terme à terme chaque ligne
                            descList.push_back(readDescriptor(incr, descName[wordCount], linesCount)); // je traite le type de donnée que j'ai et j'ajoute le descripteur dans la liste
                            sstm << sampleCount; // c'est le numéro de mon individu
                        }
                        Sample* sample= new Sample(sstm.str(), catList, descList, precision);
                        samplesList.push_back(sample);
                        sampleCount++;
}
//////////////////////////////////////////
Ca ne peut pas marcher parce qu'alors ma liste ne fait que s'allonger et je me retrouver avec un vecteur aussi grand que la dimension de la matrice.
 
 
J'ai pensé à utiliser un vecteur de vecteur:
vector<vector<Descriptor*>> totalDescList;
 
Ce qui me donnerait ce code:
for(...){
for(auto incr: descValues){
                            descList.push_back(readDescriptor(incr, descName[wordCount], linesCount));
                            wordCount++;
                            sstm << sampleCount;
                        }
                        totalDescList.push_back(?); <- comment y stocker le petit bout de descList que je veux?
                        Sample* sample= new Sample(sstm.str(), catList, totalDescList[sampleCount-1]), precision);
                        samplesList.push_back(sample);
                        sampleCount++;
}
Mais je ne vois pas comment récupérer juste le petit bout de descList qui me concerne pour le stocker dans totalDescList...
 
 
Désolée pour la longueur, en tous cas j'espère que je suis claire!
Merci d'avance, parce que vraiment, je n'en peux plus là...!

mood
Publicité
Posté le 15-04-2014 à 12:14:59  profilanswer
 

n°2225122
theshockwa​ve
I work at a firm named Koslow
Posté le 15-04-2014 à 13:45:42  profilanswer
 

tu fais de la soupe et tu t'embrouilles.
 
Est-ce que tu as vraiment besoin de polymorphisme sur ton descripteur ? Si tu n'en as pas besoin, tu peux retirer ton pointeur.
 
Au lieu de faire un vector<vector<Descriptor*>>, demande-toi quelles structures ont du sens et crée une classe ou une structure correspondante.
 
Pour écrire du code lisible, et aussi mieux réussir à résoudre tes problèmes, il faut arriver à simplifier tes étapes. Tu n'e pas obligé d'avoir une fonction qui lit tous les descripteurs de tous les individus. Commence par séparer en une fonction qui fait le tour des individus et une autre qui lit tous les descripteurs d'un individu donné.


---------------
last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  allocation dynamique de vector c++

 

Sujets relatifs
[FORTRAN] Problème structure dynamique modifiée dans subroutinebackground "dynamique"
Lecture/Ecriture en binaire de vectorintialisation d'un Vector
allocation memoire dans une fonctionrécupérer une URL dynamique
oracle proc stock et sql dynamiqueRecherche de valeur dans un tableau dynamique
[Java]Aide affichage 3d dynamique[C] Allocation memoire structures
Plus de sujets relatifs à : allocation dynamique de vector c++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR