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

C++ Discussion :

Erreur que je ne comprend pas C++ vector


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    D�cembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 15
    Par d�faut Erreur que je ne comprend pas C++ vector
    Bonjour, apr�s avoir essay� pendant pas mal de temps de comprendre mon erreur je n'y arrive pas alors je viens � vous pour vous demander comment pourrais-je r�parer cette erreur, mon programme se compile mais �a me met �a:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include <vector>
    #include <iostream>
    using namespace std;
     
     
    void print(string titre, vector <int> titree)
    {
    	for (int i = 0; i < titree.size(); i++)
    	{
    		cout <<titree[i]<<endl;
     
     
     
    	}
    }
     
     
    vector <int> fibonacci(int x,int y,int n)
    {
    	vector <int> v;
    	v[0] = x;
    	v[1] = y;
    	int a;
    	for (int i = 2; i < n; i++){
    		a = v[i - 2] + v[i - 1];
    		v.push_back(a);
     
    	}
       return v;
    }
     
    int main()
    {
     
     
    	print("aa", fibonacci(1, 2, 5));
     
    	cin.get();
     
    	return 0;
    }
    Voila, merci d'avance
    Images attach�es Images attach�es   

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    C'est pourtant comme le portsalut, c'est marqu� dessus :
    Assertion fails : vector subscript out of range
    ou, si tu pr�f�res, tu essayes d'acc�der � un indice de ton vecteur qui n'existe pas encore

    Pour trouver la raison, je te proposerais bien de te faire "aussi b�te qu'un ordinateur" et de suivre pas � pas les instructions que tu a �crites dans ta fonction fibionnacci :Tu d�clares une variable v qui est un tableau d'entiers, soit, mais ce tableau est vide: v.size() == 0!!!!

    Du coup, lorsque, tu fais
    C'est d�j� foutu : tu essaye d'affecter � l'�l�ment se trouvant � l'indice 0 (qui n'existe pas) la vleur de X...
    Et, bien sur, la ligne suivante enfonce le clou, car v[1] existe encore moins que v[0]

    Et, enfin, lorsque tu fais dans ta boucle, m�me au tout d�but (quand i vaut 2), tu fais encore la m�me erreur d'essayer d'acc�der � deux indices (respectivement 0 et 1) qui n'existent absolument pas dans ton tableau.

    Et les passages suivant dans la boucle (si nous arrivions � entrer plusieurs fois dans la boucle) continueraient syst�matiquement � des indices hors limites (1 et 2 quand n vaut 3, alors que v.size() == 1, et ainsi de suite )

    Je t'ai donn� toutes les origines de tes erreurs, � toi d'en tirer les cons�quences
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    D�cembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 15
    Par d�faut
    Voila j'ai compris ce qui allait pas et r�ussi � corriger les b�tes fautes que j'avais faites merci beaucoup pour ton aide et d�sol� d'avoir pos� une question aussi basique ^^

  4. #4
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    En utilisant un debugger, il s'arr�te quand �a survient et te permet de v�rifier tes donn�es, voir ta callstack etc..
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  5. #5
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par Sparitates Voir le message
    Voila j'ai compris ce qui allait pas et r�ussi � corriger les b�tes fautes que j'avais faites merci beaucoup pour ton aide
    Mais de rien
    et d�sol� d'avoir pos� une question aussi basique ^^
    Il n'y a vraiment pas de quoi t'excuser, il n'y a pas de question idiote, surtout quand on d�but

    Ceci dit, je ne peux qu'�tre d'accord avec Bousk : le d�buggeur t'aurais, tr�s certainement permis de trouver ton erreur par toi-m�me

    Bon, je sais, le d�buggeur a tendance � rendre les d�buttants nerveux la premi�re fois qu'ils s'en servent... Mais il finira par devenir un ami ins�parable Tu ferais bien de t'y habituer le plus vite possible
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  6. #6
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    D�cembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 15
    Par d�faut
    ok, merci pour vos conseils je les prendrai en compte avant de reposter

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Tableaux] Une erreur que je ne comprend pas
    Par bibom dans le forum Langage
    R�ponses: 2
    Dernier message: 01/08/2006, 18h47
  2. [debug] erreur que je ne comprend pas
    Par PoZZyX dans le forum Java ME
    R�ponses: 4
    Dernier message: 11/07/2006, 08h05
  3. std ::vector [erreur que je ne comprend pas]
    Par aaronw dans le forum SL & STL
    R�ponses: 8
    Dernier message: 05/03/2006, 21h00
  4. [D�butant] Message d'erreur que je ne comprends pas
    Par Le Furet dans le forum Langage
    R�ponses: 2
    Dernier message: 25/02/2006, 17h37
  5. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de donn�es
    R�ponses: 3
    Dernier message: 02/02/2006, 10h18

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