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++

  1. #1
    Membre à l'essai
    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
    Points : 14
    Points
    14
    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 sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = v[i - 2] + v[i - 1];
    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 à l'essai
    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
    Points : 14
    Points
    14
    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 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 960
    Points
    32 960
    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 sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    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 à l'essai
    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
    Points : 14
    Points
    14
    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