Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1545 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] Passage par référence d'un vector <>

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] Passage par référence d'un vector <>

n°367739
ToxicAveng​er
Posté le 21-04-2003 à 15:43:38  profilanswer
 

je sais que c'est pas dans l'esprit du C++, mais bon, je me demande comment je pourrais passer un vector dans une fonction pour pouvoir modifier ce vector dans cette fonction.
 
Exemple:
 

Code :
  1. int main (void)
  2. {
  3.    vector <int> vi;
  4.    ma_fonction(vi);
  5. }
  6. void ma_fonction(vector <int> vi)
  7. {
  8.    vi.push_back(12);
  9. }


 
bon la je passe par valeur, donc quand je sors de ma_fonction, vi reprend se valeur précédente (vide).
 
J'ai bien essayé par pointeur, mais ca marche pas trop.
 
Si kk'un a une idée simple ? [:zaib3k]
 
_______________________________________
 
Edit: je pourrais bien sur faire un :

Code :
  1. vector<int> ma_fonction

au lieu d'un

Code :
  1. void ma_fonction

mais bon, je prefere l'autre méthode (par référence)


Message édité par ToxicAvenger le 21-04-2003 à 15:45:34
mood
Publicité
Posté le 21-04-2003 à 15:43:38  profilanswer
 

n°367747
verdoux
And I'm still waiting
Posté le 21-04-2003 à 15:56:46  profilanswer
 

Achète un bouquin sur le c++

n°367756
R3g
fonctionnaire certifié ITIL
Posté le 21-04-2003 à 16:11:12  profilanswer
 

Code :
  1. void ma_fonction(vector <int> & vi)  ?


 
Note : j'y connais rien en C++, hein.


Message édité par R3g le 21-04-2003 à 16:11:45
n°367758
ToxicAveng​er
Posté le 21-04-2003 à 16:13:01  profilanswer
 

verdoux a écrit :

Achète un bouquin sur le c++


 
 :kaola:  :kaola:  :kaola:

n°367759
ToxicAveng​er
Posté le 21-04-2003 à 16:13:41  profilanswer
 

R3g a écrit :

Code :
  1. void ma_fonction(vector <int> & vi)  ?


 
Note : j'y connais rien en C++, hein.


 
en C, j'aurais mis plutot * mais bon...

n°367761
Taz
bisounours-codeur
Posté le 21-04-2003 à 16:16:45  profilanswer
 

le passage par référence est tres C++ est est d'ailleurs un apport majeur par rapport au C.
 

Code :
  1. void ma_fonction(vector<int> &vi)
  2. {
  3.   vi.push_back(12);
  4. }

est du tres bon C++. Il n'y a rien à redire.

n°367762
verdoux
And I'm still waiting
Posté le 21-04-2003 à 16:17:00  profilanswer
 

ToxicAvenger a écrit :


 
en C, j'aurais mis plutot * mais bon...


Et surtout, lis le bouquin.

n°367766
R3g
fonctionnaire certifié ITIL
Posté le 21-04-2003 à 16:21:09  profilanswer
 

ToxicAvenger a écrit :


 
en C, j'aurais mis plutot * mais bon...


J'y connais rien en C++, mais je sais quand même que * est un pointeur, et & une reference. Evidemment, venant du Java je ne comprends pas qu'on puisse utiliser des pointeurs quand on a la possibilité d'utiliser des references, mais bon...

n°367769
ToxicAveng​er
Posté le 21-04-2003 à 16:25:50  profilanswer
 

++Taz a écrit :

le passage par référence est tres C++ est est d'ailleurs un apport majeur par rapport au C.
 

Code :
  1. void ma_fonction(vector<int> &vi)
  2. {
  3.   vi.push_back(12);
  4. }

est du tres bon C++. Il n'y a rien à redire.


 
 :jap:
 
Edit: ca marche impec


Message édité par ToxicAvenger le 21-04-2003 à 16:37:08
n°367773
Taz
bisounours-codeur
Posté le 21-04-2003 à 16:29:40  profilanswer
 

R3g a écrit :


J'y connais rien en C++, mais je sais quand même que * est un pointeur, et & une reference. Evidemment, venant du Java je ne comprends pas qu'on puisse utiliser des pointeurs quand on a la possibilité d'utiliser des references, mais bon...

de toutes façons le langage C++ est un langage de valeurs, le Java un langage de références. Il y a plusieurs types de passage de paramètres en C++, le passage par référence du C++ ressemble au passage de paramètre Java.

mood
Publicité
Posté le 21-04-2003 à 16:29:40  profilanswer
 

n°367774
ToxicAveng​er
Posté le 21-04-2003 à 16:34:40  profilanswer
 

++Taz a écrit :

de toutes façons le langage C++ est un langage de valeurs, le Java un langage de références. Il y a plusieurs types de passage de paramètres en C++, le passage par référence du C++ ressemble au passage de paramètre Java.  


 
En java, le passage est un passage par valeur de la référence (enfin je crois) [:zaib3k]

n°367791
Taz
bisounours-codeur
Posté le 21-04-2003 à 17:19:13  profilanswer
 

j'ai dit ressemble. on procède comme si on avait une référence C++, mais personne n'ignore que les références Java sont des pointeurs déguisés

n°367990
ToxicAveng​er
Posté le 21-04-2003 à 21:54:56  profilanswer
 

++Taz a écrit :

j'ai dit ressemble. on procède comme si on avait une référence C++, mais personne n'ignore que les références Java sont des pointeurs déguisés


 
oui bon, de toutes facons j'ai reussi a faire ce que je voulais faire, donc c'est bon, merci  :jap:  
 
Pour ceussent qui sont intérrésés, c'est un viewer de map pour ceux qui developpent des map pour mon rpg:
 
http://dqg.free.fr en page download.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] Passage par référence d'un vector <>

 

Sujets relatifs
Passage d'arguments par défaut dans constructeurVBS regwrite et passage d'une varible
question sur le passage d'un pointeur en paramètre[Session] Passage de l'id de session de pages en pages
[vector<int>] intialisation concise avec des élementsC++, gdb, vector....
Tableau dynamique à deux entrées avec vectorProbleme avec vector
HELP : DEV C++ [ Linker error ] : undefined reference to 'WinMain@16'Passage erroné d'un tableau de chaînes de caractères à une procédure..
Plus de sujets relatifs à : [c++] Passage par référence d'un vector <>


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR