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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] manipulation de tableau a l'aide des references ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] manipulation de tableau a l'aide des references ?

n°2221143
bqron
We become what we think about.
Posté le 01-03-2014 à 01:55:43  profilanswer
 

Bonsoir,

 

Est-il possible de manipuler les tableaux (sans la STL) via les références, si oui comment ?

 

Voici une fonction que j'essai d'adapter :

Code :
  1. int* copie (const int* tab_s, const int taille = 2)
  2. {
  3.     int* tab_t = new int[taille];
  4.     for (int i = 0; i < taille; i++)
  5.         *(tab_t+i) = *(tab_s+i);
  6.     return tab_t;
  7. }
 

en quelque chose du genre :

 
Code :
  1. int& copie (const int tab_s[]&, const int taille = 2 ) // le compilo (g++ 4.8.1) rejette le "&" du premier argument.
  2. {
  3.     int tab_t[] = new int[taille];
  4.     for (int i = 0; i < taille; i++ )
  5.         tab_t[i]=tab_s[i];
  6.     return tab_t;
  7. }



Message édité par bqron le 01-03-2014 à 02:55:39

---------------
The success, is a progressive realization of a worthy ideal
mood
Publicité
Posté le 01-03-2014 à 01:55:43  profilanswer
 

n°2221183
gilou
Modérateur
Modzilla
Posté le 01-03-2014 à 19:29:06  profilanswer
 

Ce que tu peux faire, c'est ce type de chose:
 

Code :
  1. template<typename T, size_t N>
  2. T* copie(T(&in_tab)[N])
  3. {
  4.     T *out_tab = new T[N];
  5.     for (int i = 0; i < N; ++i )
  6.          out_tab[i] = in_tab[i];
  7.     return out_tab;
  8. }


 
Mais bon, pas vouloir utiliser std::copy, c'est avoir une propension au masochisme.
 
A+,


Message édité par gilou le 01-03-2014 à 19:36:32

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2221263
bqron
We become what we think about.
Posté le 03-03-2014 à 01:01:26  profilanswer
 

Enfin là cela reste toujours de l'utilisation pointeurs... Pourtant en C++, il me parait avoir lut que l'utilisation des pointeurs pouvaient être totalement omit grâces aux références.
 
Merci tout de même. :jap:


---------------
The success, is a progressive realization of a worthy ideal
n°2221264
gilou
Modérateur
Modzilla
Posté le 03-03-2014 à 03:19:19  profilanswer
 

Euh, dans mon exemple, seul le type de retour est un pointeur, et cela provient de son allocation dynamique avec new[]
 
Si je veux faire une fonction qui a comme paramètre une référence sur un T[N] et résultat une référence sur un T[N] je dois faire ainsi:
 
template<typename T, size_t N>
T (&fonction(T(&in_tab)[N]))[N]
{
  .............  
}
 
Mais si j'alloue dynamiquement le tableau de retour avec new[], qui renvoie un pointeur, alors on est bien obligé de faire
template<typename T, size_t N>
T *fonction(T(&in_tab)[N])
{
  .............  
}
 
A+,


Message édité par gilou le 03-03-2014 à 03:23:07

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  [C++] manipulation de tableau a l'aide des references ?

 

Sujets relatifs
besoin d'aide sur programme SVP !Visual C++ 2010 Express et SDL
[PHP] tableau videC# Problème de clé absente du dictionnaire
[HELP] Visual C++Intégrer liste/boucle php dans un tableau html.
Problème de tableau excel[C++] utiliser des classes dans mon code
Aide pour programmer une ouverture de porte système RFIDTableau dans fonction
Plus de sujets relatifs à : [C++] manipulation de tableau a l'aide des references ?


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