bonjour
je suis totalement debutant en c++ ( mais pas en programmation)
je voudrais savoir si il est possible de déclarer une fonction qui prend un tableau d'entiers en parametres et qui renvoie un tableau?
je vous remrcie
bonjour
je suis totalement debutant en c++ ( mais pas en programmation)
je voudrais savoir si il est possible de déclarer une fonction qui prend un tableau d'entiers en parametres et qui renvoie un tableau?
je vous remrcie
Ou, selon le cas, pour éviter une copie inutile du tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::vector<int> f(std::vector<int> entree);
Voire, si l'entrée est aussi une sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::vector<int> f(std::vector<int> const &entree);
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::vector<int> f(std::vector<int> &entree);
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
merci masi pourrais tu juste commenter un peu le code car je comprens pas grand chose?
merci
Il y a deux points qui peuvent demander expliquation :
1/ Le passage de paramètres
Soit un type A. Pour passer une variable de de type en argument de fonction, il y a trois façons principales :
f prend en paramètre une copie de ce qu'on lui passe. Cette copie est modifiable dans le corps de la fonction, mais la modifier ne change en rien la valeur de ce qu'on lui a passé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void f(A a); void g(A const &a); void h(A &a);
g prend en paramètre une référence constante sur un A. Cette référence n'est pas modifiable. L'avantage est qu'on a éviter la copie qui peut s'avérer couteuse.
h prend en paramètre une référence à un A. Modifier cette référence dans la fonction modifie la valeur elle aussi. Du coup, on est obligé d'appeler cette fonction avec une vraie variable, pas avec une constante ou le résultat d'une expression.
2/ std::vector<int>
Il y a plusieurs façon de représenter un tableau d'entiers en C++. La meilleur façon dépend probablement de ce qu'on compte faire ce ce tableau. La façon la plus courante de le faire (et celle à mettre en oeuvre par défaut quand on n'a pas vraiment d'autres idées/infos) est d'écrire ce type std::vector<int>. Pour un tableau de taille connue à la compilation, on pourrait écrire int[42] (mais attention, on ne peut pas retourner directement un tel type d'une fonction), ou utiliser une classe spécifique comme boost::array. D'autres variantes sont std::deque<int> ou std::list<int>
Je te conseille de consulter un ouvrage de C++ qui pourra certainement t'en apprendre plus sur le sujet.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
En fait tu ne t'occupes pas trop du type des données à passer... tu passes à la fonction ton tableau comme tu passerais un int, un double, un objet d'une classe que tu viens de créer...
Voila
Partager