Problème avec vector lors de l'exécution du programme

Problème avec vector lors de l'exécution du programme - C++ - Programmation

Marsh Posté le 15-03-2008 à 21:06:37    

Salut,
 
J'utilise CodeBlocks pour éditer le programme et GNU GCC Compiler pour le debug / création de l'exécutable.
 
Si je mets une ligne telle que :
 
cout << monVecteur[1];
 
Où monVecteur est déclaré comme "vector <string> monVecteur;", la compilation se passe sans problèmes mais la ligne affichant à l'écran ce qui est contenu dans le vecteur plante l'exécutable à tous les coups. J'ai essayé ça dans un programme assez vaste, puis en copiant directement les exemples trouvés sur internet pour expliquer les vecteurs (5 lignes de code, donc aucune raison de planter) et si tout se passe bien quand je n'affiche rien, l'affichage plante toujours. Comme je suis certain que le programme en lui-même n'a rien de faux, je ne comprends pas pourquoi ça plante.
 
Des avis ? Je ne suis pas un programmeur de métier, j'utilise juste le C++ pour réaliser des opérations mathématiques qu'excel a du mal à faire donc je me contente du minimum de complexité dans mon code, et je ne suis pas capable de débugguer ce qui n'a pas d'erreur signalée...  :(
 
Merci !

Reply

Marsh Posté le 15-03-2008 à 21:06:37   

Reply

Marsh Posté le 15-03-2008 à 21:20:46    

t'es sur que ton vecteur à bien un élément ?
tu sais que vector ca commence à 0 et pas à 1 aussi ?
 
et poste du code :o

Reply

Marsh Posté le 15-03-2008 à 21:38:03    

Code :
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. using namespace std;
  5. int main()
  6. {
  7.     vector <string> monVecteur;
  8.     monVecteur [0] = "Numero 1";
  9.     cout << monVecteur [0] << endl;
  10.     return 0;
  11. }


 
En voila du code  :)  
Oui et oui pour les 2 questions. Faut-il utiliser quelque chose comme "new" pour créer le vecteur ? D'après ce que j'ai compris pas besoin de s'embêter avec les tailles de tableau comme ça serait le cas en C.

Reply

Marsh Posté le 15-03-2008 à 23:50:58    

faut quand meme inserer proprement la chose.
 
Soit en utilisant push_back
 

Code :
  1. monVecteur.push_back("totoz" );


 
Soit en initialisant la taille du vecteur à la construction.
Je connais plus le smiley mais RTM :  
http://www.sgi.com/tech/stl/Vector.html

Reply

Marsh Posté le 16-03-2008 à 20:02:13    

C'était donc tout bête  :) Merci !  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed