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

 C++ Discussion :

Création de conteneur avec "make"


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Par défaut Création de conteneur avec "make"
    Salut,
    Je suis en train de lire un document sur les bibliothèques stl et je trouve une fonction bizarre, j'ai testé sur Visual Studio 2010 mais ça n'a pas reconnu la fonction "make"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    list<char> list1=make<list<char>> ("mark twain");
    les includes sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #include <iostream>
    #include <string>
    #include<vector>
    #include<cassert>
    #include<algorithm>

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,
    Il n'existe pas de fonction std::make dans la STL (la fonction la plus proche alphabétiquement est std::make_pair). C'est donc une fonction qui doit probablement être définit ailleurs dans le document en question. Vu son utilisation on peut supposer que make() est défini comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <list>
    #include <string>
    template <typename ContainerOfChar>
    ContainerOfChar make(const std::string& s)
    {
       return ContainerOfChar(s.begin(), s.end());
    }
     
    int main()
    {
       std::list<char> list1= make<std::list<char>>("mark twain");
    }
    Mais je n'en mettrais pas ma main à couper, car si c'est vraiment ça je ne vois pas top l’intérêt d'en faire une fonction. Autant copier directement la string dans la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main()
    {
       std::string s = "mark twain";
       std::list<char> list1(s.begin(), s.end());
    }

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