Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
910 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec la STL et un set <int>

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec la STL et un set <int>

n°1243814
dustnet
Posté le 11-11-2005 à 13:00:54  profilanswer
 

Alors voila, j'ai déclarer un :
set <int> monset;
 
et je ne sais bêtement pas comment récupérer l'entier étant à l'itérateur moniterateur... je n'arrive pas a trouver la liste des méthodes de set...donc j'ai esséyé monset.get(moniterateur);
Ca n'existe pas..etc...
 
Comment faire pour afficher tout le set, en se déplaçant avec un iterateur ?
 
Please aidez moi jpete un cable...
 
Merci!

mood
Publicité
Posté le 11-11-2005 à 13:00:54  profilanswer
 

n°1243815
elianor
bannie 17 fois
Posté le 11-11-2005 à 13:03:30  profilanswer
 

Code :
  1. monInt = *monitétateur;


Message édité par elianor le 11-11-2005 à 13:03:44

---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1243818
dustnet
Posté le 11-11-2005 à 13:11:11  profilanswer
 

Merci je vais essayer avec ça!

n°1243819
elianor
bannie 17 fois
Posté le 11-11-2005 à 13:11:33  profilanswer
 

Plus spécialiste STL :  
 

Code :
  1. copy(monSet.begin(), monSet.end(), std::ostream_iterator<int>(std::cout, " " ));


Message édité par elianor le 11-11-2005 à 13:11:51

---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1243826
dustnet
Posté le 11-11-2005 à 13:19:56  profilanswer
 

autre petite question :
 
Dans mon programme j'ai différentes définitions de types:
 
typedef set <int> setNumLigne;
typedef map <int, setNumLigne> mapFichiers;
typedef map < string, mapFichiers > mapId;
typedef set <string> setMotsCles;
typedef setMotsCles::iterator iterSet;
typedef mapId::iterator iterateur;

 
Puis cela en donnée:
mapId identificateurs;
 
Et je voudrais me déplacer dans le set de la map de la map.
alors j'ai fais ça:
iterSet iter3;
...un peu de code...puis
for (iter3 =iter->second.find(cpt)->second.begin();iter3 != iter->second.find(cpt)->second.end();iter3++)
{  
     cout << *iter3 << " ";
}

 
Et apparement je n'ai pas droit de faire : iter3 =iter->second.find(cpt)->second.begin();
 
Pourquoi ? :sweat:

n°1243835
chrisbk
-
Posté le 11-11-2005 à 13:29:45  profilanswer
 

find() renvoie deja un iterateur

n°1243851
dustnet
Posté le 11-11-2005 à 13:58:42  profilanswer
 

et je devrais ecrire koi a la place ?

n°1243852
chrisbk
-
Posté le 11-11-2005 à 13:59:44  profilanswer
 

chaipas, en fait chui perdu dans ton truc, c'est quoi le type de iter ?

n°1243853
dustnet
Posté le 11-11-2005 à 14:00:39  profilanswer
 

 
 
J'ai essayé ça:
 

Code :
  1. copy(iter->second.find(cpt)->second.begin(),iter->second.find(cpt)->second.end(),ostream_iterator<int>(cout, " " ));


 
Mais ca me donne :
`ostream_iterator' undeclared (first use this function)

n°1243854
dustnet
Posté le 11-11-2005 à 14:03:32  profilanswer
 

en fait, ma structure est de ce type:
map < string, map < int, set <int> > >;
 
et iter est un itérateur sur cette structure (il est de type iterateur, type définis précédement)


Message édité par dustnet le 11-11-2005 à 14:04:42
mood
Publicité
Posté le 11-11-2005 à 14:03:32  profilanswer
 

n°1243856
chrisbk
-
Posté le 11-11-2005 à 14:04:52  profilanswer
 

et l'erreur qu'il te donne sur ton premier bout de code ?

n°1243857
dustnet
Posté le 11-11-2005 à 14:06:19  profilanswer
 

Bonne chance.... :sarcastic:  
 
118 H:\COURS\INSA\1ere année\C++\Tp2 -CrossRef\crossref.cpp no match for 'operator=' in 'iter3 = (((setNumLigne*)(&(((mapFichiers*)(&iter)->std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<const std::string, mapFichiers>]()) + 4u)->std::map<_Key, _Tp, _Compare, _Alloc>::find [with _Key = int, _Tp = setNumLigne, _Compare = std::less<int>, _Alloc = std::allocator<std::pair<const int, setNumLigne> >](((const int& )((const int*)(&cpt)))))->std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<const int, setNumLigne>]()) + 4u)->std::set<_Key, _Compare, _Alloc>::begin [with _Key = int, _Compare = std::less<int>, _Alloc = std::allocator<int>]()'

n°1243859
chrisbk
-
Posté le 11-11-2005 à 14:07:43  profilanswer
 

bon bin alors, je vais t'aider
 
map < string, map < int, set <int> > >;  
 
typedef set <string> setMotsCles;
typedef setMotsCles::iterator iterSet;  
 
 
jpense tu verras la ou y'a un pb

n°1243863
chrisbk
-
Posté le 11-11-2005 à 14:11:01  profilanswer
 

bon, apres, j'aime pas faire des typedefs sur des iterateurs, question de gout

Code :
  1. typedef std::set<int> monSet;
  2. monSet::iterator truc;


 
 
me semble souvent plus parlant et evite d'avoir a trop réfléchir
 

Code :
  1. for (iter3 =iter->second.find(cpt)->second.begin();iter3 != iter->second.find(cpt)->second.end();iter3++)


 
cette ligne est inutilement moche et complexe. Casse la en deux
 

Code :
  1. setNumLigne &trucmachin= iter->second.find(cpt)->second;
  2. for (iter3 =trucmachin.begin();iter3 != trucmachin.end();iter3++)


 

n°1243866
dustnet
Posté le 11-11-2005 à 14:18:13  profilanswer
 

Je viens de voir la couillle!! je modifie!!


Message édité par dustnet le 11-11-2005 à 14:19:25
n°1243867
chrisbk
-
Posté le 11-11-2005 à 14:19:07  profilanswer
 

bon bin ecoute, file un bout de code complet, avec type et tout sinon on ne va pas s'en sortir.

n°1243870
dustnet
Posté le 11-11-2005 à 14:23:31  profilanswer
 

Merci beaucoup, j'ai réglé le probleme.  
Cela venait bien du fait que mon type d'iterateur iterSet etait réglé sur le setMotCles et pas sur setLigne....evident, mais j'avais vraiment les yeux autre part..
 
Merci encore!

n°1243872
chrisbk
-
Posté le 11-11-2005 à 14:24:11  profilanswer
 

ouais bin c'est un peu ce que je t'ai dis deux posts plus haut, mais c'est pas grave hein ? [:moule_bite]

n°1243886
dustnet
Posté le 11-11-2005 à 14:40:48  profilanswer
 

je sais ke c ce que tu as dis deux post plus haut. Jamais dis le contraire.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec la STL et un set <int>

 

Sujets relatifs
Problème avec Spipproblème lien html dans une iframe svp
[problème c++] Conteneur STL et héritageProbleme avec Visual C++ et la STL
[C++/STL] list et parcours avec un itérateur : problèmeProblème avec les 'keys' d'un map de la STL
Problème tri d'une liste objet (STL)[C++] Probleme de link (STL et solaris)
Du C au C++ avec STL: probleme resolu mais non compris[VC++] Dll et STL: probleme de recopie (???)
Plus de sujets relatifs à : Probleme avec la STL et un set <int>


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR