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

SL & STL C++ Discussion :

[deque] utilisation d'insert avec un type personnel


Sujet :

SL & STL C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [deque] utilisation d'insert avec un type personnel
    Bonjour à tous,

    je rencontre une erreur de compilation quand j'utilise la fonction insert de la class deque<T> avec T un objet que j'ai défini.
    Voici le type d'erreur rencontrée :
    error: no matching function for call to 'std::deque<B*, std::allocator<B*> >::insert(std::_Deque_iterator<B*, B*&, B**>&, B&)'
    /usr/include/c++/4.0.0/bits/deque.tcc:90: note: candidates are: typename std::deque<_Tp, _Alloc>::iterator std::deque<_Tp, _Alloc>::insert(typename std::_Deque_base<_Tp, _Alloc>::iterator, const _Tp&) [with _Tp = B*, _Alloc = std::allocator<B*>]
    /usr/include/c++/4.0.0/bits/stl_deque.h:1115: note: void std::deque<_Tp, _Alloc>::insert(typename std::_Deque_base<_Tp, _Alloc>::iterator, size_t, const _Tp&) [with _Tp = B*, _Alloc = std::allocator<B*>]
    J'ai essayé l'insert sur un deque<int>, là pas de problème mais quand je passe à quelque chose de plus sophistiqué ... Problème
    Quelqu'un a-t-il déjà rencontré voire résolu ce problème ?
    Merci de votre participation.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Euh... tu es sûr de ton appel car no souci. Tu peux montrer ton code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #include <deque>
     
    using namespace std;
     
    class B {
    public:
      int b;
    };
     
    typedef deque <int *> dequeI;
    typedef deque <B *> dequeB;
     
    int main () {
     
      int i = 0;
      dequeI di;
      di.insert (di.end(), &i);
     
      B b1 = {0};
      dequeB dq;
      dq.insert (dq.end(), &b1);
     
      return 0;
     
    }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé ta solution elle marche bien, mais le problème apparait quand je
    veux utiliser un iterateur pour placer l'élément à insérer.
    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <iostream>
    #include <string>
    #include <deque>
    #include <iterator>
     
     
    class B {
      public :
       int x ;
       B(const int& ax) : x(ax) {} 
     
    } ;
     
    int main() {
     
      typedef std::deque<B*> dequeB ;
      dequeB list ;
      list.push_back(new B(1)) ;
      list.push_back(new B(2)) ;
      list.push_back(new B(3)) ;
      list.push_back(new B(4)) ;
      std::deque<B*>::iterator my ;
      my = list.begin() + 1 ;
      B b(4) ;
      my = list.insert(my, b) ;
     
      return 0 ;
    }
    Merci encore pour ta réponse rapide

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Tu as un Deque<B*> et tu essaye d'y insérer un B...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut


    Merci à tous

Discussions similaires

  1. Utilisation de Ctype avec un type variable
    Par Tommy57 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/07/2013, 09h41
  2. plantage macro avec requete type insert
    Par zephyr59 dans le forum Access
    Réponses: 4
    Dernier message: 06/04/2006, 00h34
  3. Impossible d'utiliser DISTINCT avec des types image et ntext
    Par azlinch dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/08/2005, 17h43
  4. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58
  5. INSERT avec procédure stockée / Clef de type AutoInc
    Par bgdelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2003, 18h30

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