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 :

problème avec std::set et iterator


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut problème avec std::set et iterator
    Bonjour, j'ai le code suivant sous Visual 8 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    std::set<int,std::greater<int> > s;
    	s.insert(0);
    	s.insert(1);
    	s.insert(2);
    	s.insert(3);
     
    	std::set<int,std::greater<int> >::const_reverse_iterator it;
    	cout << "affichage de s" << endl;
     
    	for(it = s.begin() ; it != s.end() ; it++)
    		cout << *it << endl;
    Et j'ai l'erreur suivante au niveau du it = s.begin() de la boucle for :

    error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::_Tree<_Traits>::iterator' (or there is no acceptable conversion)
    with
    [
    _Traits=std::_Tset_traits<int,std::greater<int>,std::allocator<int>,false>
    ]
    C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(1842): could be 'std::reverse_iterator<_RanIt> &std::reverse_iterator<_RanIt>::operator =(const std::reverse_iterator<_RanIt> &)'
    with
    [
    _RanIt=std::_Tree<std::_Tset_traits<int,std::greater<int>,std::allocator<int>,false>>::const_iterator
    ]
    while trying to match the argument list '(std::reverse_iterator<_RanIt>, std::_Tree<_Traits>::iterator)'
    with
    [
    _RanIt=std::_Tree<std::_Tset_traits<int,std::greater<int>,std::allocator<int>,false>>::const_iterator
    ]
    and
    [
    _Traits=std::_Tset_traits<int,std::greater<int>,std::allocator<int>,false>
    ]
    Quelqu'un aurait-il une idée ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    Bonjour
    Citation Envoyé par salseropom Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::set<int,std::greater<int> >::const_reverse_iterator it;
    Ici, tu déclare un reverse itérator.

    Or tu essaye de lui assigner un itérator (begin)
    Citation Envoyé par salseropom Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         for(it = s.begin() ; it != s.end() ; it++)
    		cout << *it << endl;
    Ce n'est pas la même chose !

    Il faudrait plutot utiliser les équivalent reverse soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         for(it = s.rbegin() ; it != s.rend() ; it++)
    		cout << *it << endl;
    ou alors déclarer ton itérateur en simpe itérateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::set<int,std::greater<int> >::const_iterator it;
    BOnne chance

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    oups... j'ai complètement oublié le rbegin() et le rend(). Merci !

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

Discussions similaires

  1. Problème avec std::set
    Par DeathMixer dans le forum SL & STL
    Réponses: 2
    Dernier message: 02/06/2009, 16h01
  2. Problème avec std::Vector
    Par mister3957 dans le forum SL & STL
    Réponses: 8
    Dernier message: 16/02/2006, 10h18
  3. T& à partir d'un std::set<T>::iterator
    Par karmaki dans le forum SL & STL
    Réponses: 3
    Dernier message: 08/02/2005, 11h55
  4. [debutant][Gregoriancalendar] Problème avec le set
    Par britou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/06/2004, 16h01
  5. Recherche "étoilée" avec std::set
    Par guejo dans le forum MFC
    Réponses: 2
    Dernier message: 06/05/2004, 13h28

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