STL_ Random Access Iterator



  • Hallole.
    Ich steh gerade voll auf dem Schlauch.
    Ich möchte mithilfe einer multimap über einem wahlfreien Zugriff diverse Daten auslesen.
    Ein Iterator ist ja kein Problem,aber wie schaffe ich es,daß ich wahlfrei drauf zugreifen kann?
    Egal was ich versuche,immer motzt der Compiler mich an, wegen Fehler.
    Es steht zwar tausendfach beschrieben was ein Random Iterator ist,aber wie man in deklariert und nachher auf die multimal zugreifen kann steht nirgens.

    multimap<string, string>::iterator it_k;
    
    for(it_k=pers_map.begin();it_k!=pers_map.end();it_k++)
    {
    ....
    
    *(it_k)+10;//geht halt net
    
    }
    

    Da kommt Fehler.

    Also die Frage ist, wie mache ich einen random Iterator und wie kann ich dann den wahlfreien Zugriff auf die Multimal realisieren?

    danke Mondmann



  • Mondmann schrieb:

    Egal was ich versuche,immer motzt der Compiler mich an, wegen Fehler.

    Naja, Compiler die einfach so motzen, sind mir auch noch nicht untergekommen. Von daher ist das schonmal kein schlechtes Zeichen.

    *(it_k)+10;//geht halt net
    

    Machst halt was falsch.

    Ein iterator auf einer (multi)map gibt Dir immer pair zurück, also sind it_k->first und it_k->second Schlüssel und Wert in der Map. Zumindest den Wert solltest Du dabei auch verändern können.

    BTW:
    Falsches Forum.



  • Aber wie kann ich denn das machen wenn ich aus einer Multimap jeden 20 Wert auslesen will?
    Meine Map besteht aus map <string,string> it_k;



  • Map hat afaik nur bidirektionalen Iterator, jedes 20. Element musst du also so ausgeben:

    MapIter iter = map.begin();
    for(int i = 0; iter != map.end(); ++i, ++iter)
        if(i%20 == 0)
            cout << iter->first << " / " << iter->second << endl;
    

    MfG SideWinder



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten