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

Langage C++ Discussion :

Template, Container Sequence, Vector et Deque


Sujet :

Langage C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    117
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 117
    Par d�faut Template, Container Sequence, Vector et Deque
    Bonjour !
    J'ai des fonctions qui prennent des deque en param�tres (besoin d'ajout au d�but et � la fin), mais je voudrai les rendre utilisable avec des vecteurs sans avoir � d�doubler le code ...

    J'avais d�bord regarder si un type sup�rieur existait. On parle bien de Concept de Sequence, mais rien d'impl�ment� si j'ai bien compris.

    Du coup je regarde du c�t� des templates mais j'ai un petit probl�me...
    Voici un exemple des fonctions que j'ai actuellement

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void functionBlabla(const std::vector<typeA>& blabla)
    {
    //code fonctionBlabla pour typeA
    }
     
    void functionBlabla(const std::vector<typeB>& blabla)
    {
    //code fonctionBlabla pour typeB (code complètement différent de celui pour le typeA)
    }
    Je voudrai obtenir un truc du genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    template <class SequenceClass>
    void functionBlabla(const SequenceClass<typeA>& blabla)
    {
    //code fonctionBlabla pour typeA
    }
     
    template <class SequenceClass>
    void functionBlabla(const SequenceClass<typeB>& blabla)
    {
    //code fonctionBlabla pour typeB (code complètement différent de celui pour le typeA)
    }
    Le compilo n'a pas l'air d'accepter :S
    Est-ce que quelqu'un a d�j� rencontr� le probl�me ou a une id�e pour le contourner ?

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Ao�t 2004
    Messages
    1 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Doubs (Franche Comt�)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 391
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    template <template<class> class SequenceClass>
    C'est la syntaxe pour les param�tre template template.

  3. #3
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par d�faut
    Les param�tres par d�faut ne sont pas pris en compte dans le cas de param�tre template template et il faut que �a match exactement les param�tres, �a marchera pas ton �criture.
    Sa par contre oui :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    template< template<typename T,
    		   typename Alloc = std::allocator<T> >
    	  class Container =  std::deque>
    // ... //

  4. #4
    Membre Expert

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Ao�t 2004
    Messages
    1 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Doubs (Franche Comt�)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 391
    Par d�faut
    Ha oui j'avais compl�tement oubli� la pr�sence de l'allocateur, merci Goten.

  5. #5
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    Que doit faire ta fonction ? Avec un peu de chance, si elle doit juste parcourir le conteneur sans le modifier (ce a quoi ej pense a la vu des signatures), tu peux demander avec une paire d'iterateur et fini les problemes
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par d�faut
    Ou mieux un range

Discussions similaires

  1. Template container en C++
    Par NoVGAcable dans le forum C++
    R�ponses: 8
    Dernier message: 04/06/2014, 17h35
  2. Bonne pratique des templates - Container
    Par LittleWhite dans le forum C++
    R�ponses: 5
    Dernier message: 04/09/2012, 17h55
  3. template et std::vector
    Par themadmax dans le forum Langage
    R�ponses: 9
    Dernier message: 26/07/2006, 10h41
  4. R�ponses: 13
    Dernier message: 03/10/2005, 18h06
  5. difference entre vector, deque, list et tableau
    Par salseropom dans le forum SL & STL
    R�ponses: 8
    Dernier message: 03/01/2005, 13h35

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