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 :

map et ostream_iterator


Sujet :

SL & STL C++

  1. #1
    Membre éclairé Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par défaut map et ostream_iterator
    J'essaie d'afficher le contenu d'un map de la même manière que les autres conteneurs, mais une erreur est générée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    std::map<const int, int> list;
    ...
    std::copy(list.begin(), list.end(), std::ostream_iterator< std::pair<const int, int> >(std::cout, " "));
    c:\program files\microsoft visual studio\vc98\include\xutility(19) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'struct std::pair<int const ,int>' (or there is no acceptable conversion)
    d:\travail\yg\exemples\win32console\main.cpp(35) : see reference to function template instantiation 'class std::ostream_iterator<int,char,struct std::char_traits<char> > __cdecl std::copy(class std::_Tree<int const ,struct std::pair<int cons
    t ,int>,struct std::map<int const ,int,struct std::less<int const >,class std::allocator<int> >::_Kfn,struct std::less<int const >,class std::allocator<int> >::iterator,class std::_Tree<int const ,struct std::pair<int const ,int>,struct std::map<int
    const ,int,struct std::less<int const >,class std::allocator<int> >::_Kfn,struct std::less<int const >,class std::allocator<int> >::iterator,class std::ostream_iterator<int,char,struct std::char_traits<char> >)' being compiled
    Edit:

    Pour ostream_iterator, apparemment je dois redéfinir l'operateur <<

  2. #2
    Membre éclairé Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par défaut
    J'ai essayé de redéfinir l'opérateur <<, mais ça ne marche toujours pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    std::ostream& operator<<(std::ostream& os, const std::pair<const int, int>& pr)
    {
    	os <<  pr.first << " => " << pr.second;
    	return os;
    }
    ...
    std::copy(list.begin(), list.end(), std::ostream_iterator< std::pair<const int, int> >(std::cout, " "));
    c:\program files\microsoft visual studio\vc98\include\iterator(203) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'const struct std::pair<int const ,int>' (or there is no acceptable conversion)
    c:\program files\microsoft visual studio\vc98\include\iterator(203) : while compiling class-template member function 'class std::ostream_iterator<struct std::pair<int const ,int>,char,struct std::char_traits<char> > &__thiscall std::ostream_
    iterator<struct std::pair<int const ,int>,char,struct std::char_traits<char> >::operator =(const struct std::pair<int const ,int> &)'

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Pour d'obscures raisons , l'opérateur << doit être dans le namespace std.

  4. #4
    Membre éclairé Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par défaut
    Effectivement

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 190
    Par défaut
    Et si tu souhaites comprendre pourquoi il est nécessaire de faire ça, je te conseille de lire ceci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. map, copy et ostream_iterator
    Par gbdivers dans le forum SL & STL
    Réponses: 2
    Dernier message: 28/07/2012, 00h30
  2. [EJB2.1 Entity] [BES] Mapping automatique et clés étrangères
    Par Bobby McGee dans le forum Java EE
    Réponses: 3
    Dernier message: 15/10/2003, 10h33
  3. Réponses: 2
    Dernier message: 11/07/2003, 18h24
  4. Problème avec memory mapping
    Par gemai dans le forum C
    Réponses: 13
    Dernier message: 04/07/2003, 09h50
  5. Editeur de MAP en delphi pour jeux directX
    Par PetitScorpion dans le forum DirectX
    Réponses: 5
    Dernier message: 09/07/2002, 18h47

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