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

SL & STL C++ Discussion :

retourner un vector a 2 dimensions par une fonction


Sujet :

SL & STL C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut retourner un vector a 2 dimensions par une fonction
    quelqu'un pourrai me dire comment faire pour retourner par une fonction un vecteur a 2 dimension. exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    vector <vector <int> > test;
    .... fonction()
    {
     
    return ... ;
    }
    je ne sais pas koi mettre la où se trouve les pointillés[/code]

  2. #2
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    vector <vector <int> > fonction()
    {
    vector <vector <int> > test;
    ...
    bla bla bla
    ...
    return test;
    }
    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    merci.
    et si je veux passé un tableau a une fonction pour la modifié
    je fais ca
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    bool  fonction(vector[][] & tab)  // ché pas si c juste ???
    {
     
    // modif effectuée sur le tableau
     
    return true
    }
    est-ce k'il y a une facon meilleur de faire ?

  4. #4
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Non,
    plutôt ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void MaFonction(vector < vector <int> >& Arg);
    La syntaxe vector<int > permet de définir pour la classe template vector, quel est le type à utiliser, ici le type int.

    Alors que unsigned int Tab[][] est incorrect.

    On peut définir un tableau ouvert uniquement comme ça:
    int Tab[][5] ou int Tab*

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    ok impec merci

    en ce ki concerne le retour d'une fonction d'un vector de vector , c'est mieux de retourner un pointer ou une reference du tableau ?

    vector <vector <int> > & fonction()
    {
    vector <vector <int> > test;
    ...
    bla bla bla
    ...
    return test;
    }

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu ne peux pas renvoyer l'adresse de (ou une référence sur) une variable locale à une fonction, puisqu'elle sera détruite dès la fin de celle-ci. Donc pour éviter une copie, le plus efficace est encore de passer ton vecteur de vecteur en paramètre par référence, et de le remplir dans la fonction.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    et si le vector de vector etait une donnée membre de la classe et que cette fonction devait retourner un pointeur ou une reference sur ce vector de vector ?

  8. #8
    Membre averti
    Avatar de bigquick
    Profil pro
    Inscrit en
    Août 2002
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 356
    Points : 353
    Points
    353
    Par défaut
    A ce moment la, aucune différence.

    Mais généralement on préfère les références, déjà parceque c'est plus facile à manipuler, mais aussi parcequ'une fonction qui retourne un pointeur peut laisser supposer qu'il faudra deleter l'objet quand on en aura fini avec lui ....

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Truc* t = maClasse.creerUnTruc();
    .... t ....
    delete p;
     
    alors que
     
    Truc& t = maClasse.getLeTruc();
    ... t ....
    And still we will be here, standing like statues ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/12/2007, 09h53
  2. retourner un count() par une fonction PL/pgSQL ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 22/05/2007, 14h12
  3. Réponses: 4
    Dernier message: 07/04/2007, 20h02
  4. valeur retournée par une fonction
    Par Biosox dans le forum C
    Réponses: 13
    Dernier message: 19/01/2007, 23h17
  5. Réponses: 11
    Dernier message: 31/10/2005, 17h59

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