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 :

Problème avec classe Vector


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Problème avec classe Vector
    bonsoir,

    Voila j'essai tout bêtement de remplir un Vector à 2 dimensions mais hélas sans succès
    Voici le code qui me pose problème:

    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
    42
    43
    44
    45
    46
    47
    48
    #include <cstdlib>
    #include <iostream>
    #include <vector>
     
    void random (std::vector<std::vector<int> > tab, int n);
     
    int main ()
    {
        int n;
        int m;
     
        std::cout << "Entrer le chiffre max:";
        std::cin >> n;
        std::cout << "Entrer la taille du vecteur:";
        std::cin >> m;
     
        std::vector<std::vector<int> > tab (m, std::vector<int>(2));
     
        random (tab, n);
        std::cout << std::endl;
        for (size_t j=0;j<edge.size ();j++)
        {
            std::cout << "T[" << j << "]: ";
            for (size_t i=0;i<edge[i].size ();i++)
            {
                std::cout << edge[j][i];
            }
            std::cout << std::endl;
        }
     
        return 0;
    }
     
    void random (std::vector<std::vector<int> > tab, int n)
    {
        int y, x;
     
        srand ((unsigned)time (0));
        for (size_t i=0;i<tab.size ();i++)
        {
            y = (rand () % n) + 1;
            x = (rand () % n) + 1;
            tab[i][0] = y;
            tab[i][1] = x;
        }
     
        return ;
    }
    Lorsque je lit le contenu de mon Vector dans le main il me sort que toute les cases valent "0 0" au lieu de deux nombre entre 1 et n. Alors que si je lit mon Vector dans ma fonction qui le rempli il s'affiche bien correctement
    Quelqu'un aurait une idée ?

    Merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    Tu passes ton vecteur par valeur et non par référence, du coup, ton vecteur qui se remplit est en réalité une copie du vecteur que tu passes.

    Voici la correction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void grapheRandom (std::vector<std::vector<int> >& edge, int n);

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    A oui en effet merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec class vector
    Par abdelmajid_daosabah dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/11/2007, 22h40
  2. Problème avec std::vector
    Par dhoorens dans le forum SL & STL
    Réponses: 4
    Dernier message: 31/12/2006, 14h27
  3. problème avec classe interface
    Par bandit_debutant dans le forum Langage
    Réponses: 6
    Dernier message: 05/11/2006, 20h54
  4. Problème avec classe MySQL
    Par shadeoner dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/07/2006, 11h25
  5. Problème avec std::Vector
    Par mister3957 dans le forum SL & STL
    Réponses: 8
    Dernier message: 16/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