Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction particulière

Une fontion du même type que le main?

    6 mars 2008 à 20:09:06

    Bonjour les zéros zéros pas sept,

    Je voudrais créer une fonction qui reçoit en paramètres plein d'entier et qui regroupe ça en deux paramètres: un entier qui contient le nombre d'entier en paramètre et un tableau d'entier contenant ces entiers, comme le fait le main avec les chaines de caractères.
    Ma question est, vous l'avez deviné, le puis-je (surement) et comment le dois-je faire?

    Merci d'avoir lu ce message ^^
    • Partager sur Facebook
    • Partager sur Twitter
      6 mars 2008 à 20:39:48

      J'en ai jamais utilisé, mais t'as un exemple ici, ça doit pouvoir t'aider, ça semble pas très compliqué à saisir...

      http://www.commentcamarche.net/forum/affich-131955-fonction-c-a-nombre-variable-de-parametres

      Bon courage.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        6 mars 2008 à 20:48:26

        Ca dépent comment tu passe en paramètre tes entiers.
        *Soit en dur, et c'est à avoir du coté de va_* (c'est du C et c'est moche),
        *Soit tu les passe dans une std::string et tu obtient un truc puissant assez facilement.
        • Partager sur Facebook
        • Partager sur Twitter
          6 mars 2008 à 21:11:30

          En faite je voudrait faire passer des objets. Je suis allé voir du coté des va_, c'est intéressant mais on est obligée de connaitre le nombre d'objet qu'on envoi.

          Citation : Davidbrcz

          *Soit tu les pâsse dans une std::string et tu obtient un truc puissant assez facilement.


          Tu pourrait développer cette phrase stp?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            6 mars 2008 à 21:42:29

            une fonction du genre:

            1. foo(const std::string& listofint, std::vector<int>& list);


            Et qui s'utiliserai comme:

            1. std::vector<int> list;
            2. foo("51 42 69 72",list);
            3. /*à la fin,
            4. -> list.size()=4; //ici tu as ton nombre de valeur
            5. -> list[0]=51,list[1]=42, ...
            6. On peut généraliser le type et/ou le conteneur avec les templates.
            7. */


            L'avantage de cette méthode, c'est qu'elle est valable pour n'importe quel nombre de valeur.
            Après, dans ta fonction il ne te reste plus qu'a parser ta std::string pour en extraire les nombres.
            Pour l'extraction , cf la FAQ de developpez.com



            • Partager sur Facebook
            • Partager sur Twitter
              6 mars 2008 à 23:19:57

              Tien, je n'ai pas compris la question pareil :)

              J'ai comprit que tu cherchais a créer une fonction ressemblant à
              1. /** Fait la somme de tous les éléments du tableau */
              2. int megaSomme(int nbElements, int elements[]);


              dans ce cas je ne peux que trop te conseiller de chercher plutôt du coté des vectors pour n'avoir besoin que d'un parametre ;)
              • Partager sur Facebook
              • Partager sur Twitter

              Fonction particulière

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown