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

  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec vector

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec vector

n°333833
haazheel
Posté le 14-03-2003 à 20:44:27  profilanswer
 

alors voilà à la création de mon appli, je crée un nouveau vecteur:
 

Code :
  1. vector<int> vect;


 
Puis plus tard quand on clique sur un bouton, il doit ajouter à ce vecteur avec une valeur.
 

Code :
  1. vect.push_back(int(PointeurStatChoisie->GetNodeValue()));


 
Mais à la compilation, pour la dernière ligne, il me dit que le symbole vect n'est pas défini. Effectivement si je mets la première ligne dans la fonction qui contient la seconde ligne, ça fonctionne...
Mais le problème est que je dois avoir accès au vecteur depuis n'importe quelle fonction...
 
Le problème est que je ne sais pas comment le définir dans le .h...
 
Comment je peux faire?

mood
Publicité
Posté le 14-03-2003 à 20:44:27  profilanswer
 

n°333839
gatorette
Posté le 14-03-2003 à 21:09:29  profilanswer
 

Il faudrait tout d'abord nous dire comment est créé vect : local à une fonction, global, membre d'une classe, ... ?
 
S'il est global, tu ajoutes dans le fichier contenant le code utilisant vect une ligne du genre :

Code :
  1. extern vector<int> vect;


 
Dans les autres cas, il faut que le code l'utilisant ait soit un pointeur vers vect, soit une référence.
 
Le mieux est encore que tu nous fournisse quelques informations supplémentaires.


Message édité par gatorette le 14-03-2003 à 21:10:00

---------------
each day I don't die is cheating
n°333842
haazheel
Posté le 14-03-2003 à 21:22:16  profilanswer
 

Bon alors en fait je crée un tableau avec des valeurs tirées d'un XML, elles même correspondant à des positions vidéos en millisecondes d'une vidéo...
 
Quand on clique sur une ligne du tableau, on place la vidéo à l'endroit indiqué par la valeur de la ligne...
 
Le problème est que dans le tableau je réecris le temps en millisecondes en heures-minutes-secondes, donc la valeur affichée ne me permet pas de replacer la vidéo.
 
J'avais donc pensé, en parralèle à l'affichage du tableau, à créer un vecteur, à faire des push_stack pour le remplir avec les valeurs en millisecondes (vu que je ne sais jamais combien de valeurs j'aurai à rentrer), et quand je clique sur le tableau, je sais sur quelle ligne j'ai cliqué, et donc l'index de cette ligne (indexée depuis 0) me sert à retrouver la valeur dans mon vecteur, et se situant au même index...
 
Je code avec C++ Builder 6.
 
Le problème est que je définis mon vecteur quand la fenêtre se crée:
 

Code :
  1. __fastcall TAnalyseStatsForm::TAnalyseStatsForm(TComponent* Owner)
  2.         : TForm(Owner)
  3. {
  4. RemplirEquipes();
  5. RemplirJoueurs();
  6. RemplirStats();
  7. vector<int> vect;
  8. }


 
Ensuite, dans une fonction de la fenêtre, je dois remplir le vecteur:
 

Code :
  1. void __fastcall TAnalyseStatsForm::ChangeStats()
  2. {
  3. ListeActions->Clear();
  4. _di_IXMLNode PointeurContenu = MainForm->XMLStats->DocumentElement;
  5. _di_IXMLNode PointeurEquipe = PointeurContenu->ChildNodes->GetNode(Equipe->ItemIndex);
  6. if (NumJoueur->ItemIndex > 0)
  7. {
  8.         _di_IXMLNode PointeurJoueur = PointeurEquipe->ChildNodes->GetNode(NumJoueur->ItemIndex - 1);
  9.         _di_IXMLNode PointeurStatsInfos = PointeurJoueur->ChildNodes->GetNode(StatChoisie->ItemIndex);
  10.         if (PointeurStatsInfos->ChildNodes->GetCount() > 0)
  11.         {
  12.                 for (int i=0; i < PointeurStatsInfos->ChildNodes->GetCount(); i++)
  13.                 {
  14.                         _di_IXMLNode PointeurStatChoisie = PointeurStatsInfos->ChildNodes->GetNode(i);
  15.                         ConvertTemps(int(PointeurStatChoisie->GetNodeValue()));
  16.                         ListeActions->AddItem(TempsPosition,this);
  17.                         vect.push_back(int(PointeurStatChoisie->GetNodeValue()));
  18.                 }
  19.         }
  20.         else
  21.         {
  22.                 ListeActions->AddItem("Pas d'actions pour cette statistique",this);
  23.         }
  24. }
  25. ......
  26. }


 
le problème se situe à cette ligne:  
 

Code :
  1. vect.push_back(int(PointeurStatChoisie->GetNodeValue()));


 
Il me met:
 
Symbole 'vect' non défini
 
Alors je me demande comment faire pour créer un vecteur utilisable dans toutes les fonctions de ma fenêtre (notamment dans celle qui récupère la valeur du vecteur, afin de replacer la vidéo)
 
J'espère avoir été clair!

n°333844
gatorette
Posté le 14-03-2003 à 21:25:55  profilanswer
 

J'ai lu rapidement ce que tu as écrit, mais ce ne serais pas plus simple de définir ton vect comme membre de ta classe TAnalyseStatsForm ?


---------------
each day I don't die is cheating
n°333850
haazheel
Posté le 14-03-2003 à 21:45:36  profilanswer
 

Merci, ça fonctionne comme ça effectivement...
 
Le problème est que le C++, j'apprends au fur et à mesure de mes erreurs ou de mes problèmes, donc je suis loin d'avoir acquis tous les bons automatismes...
 
Je me doutais qu'il fallait le définir comme membre de la classe TAnalyseStatsForm, mais j'avais essayé de le faire depuis le .H, ce qui me causait aussi des erreurs...
 
Là, ça fonctionne pour l'instant, donc je continue, et je reviens si ça merde plus tard :)  
 
Merci encore!!


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

  Probleme avec vector

 

Sujets relatifs
Javascript probleme !![Apache & PHP] Probleme de 'casse' avec mod_rewrite
Problème forum xmbpetit probleme de memoire!!!
problème avec JTabbedPane [Résolu][HTML] Problème de marges (question conne)
et HTML probleme d'affichage tout conforum en PHP : problème de suivi des messages [résolu]
Probleme d'espaces dans un <input> et phpC++ - Problème de passage de variable de type vector dans une fonction
Plus de sujets relatifs à : Probleme avec vector


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