Frage zu Iteratoren



  • Hallo,

    ich habe folgende Funktion:

    template<class T, class Key>
    void HashTable<T, Key>::find(Key& key) {
    // hier folgt die Funktion
    }
    

    Nun möchte ich in der Funktion einen Iterator folgendermaßen einsetzen. Aber irgendwie komm ich damit nicht klar...

    iterator iter;
    for (iter = begin(); iter != end(); ++iter) {
    }
    

    Normalerweise geht das z.B. ja so:

    vector<string> bsp;
    vector<string>::iterator iter;
    
    for (iter = bsp.begin(); iter != bsp.end(); ++iter)
    

    Könnt Ihr mir vielleicht weiterhelfen, wie ich das in meinem Beispiel umsetzen muss, damit es funktioniert?

    Vielen Dank!



  • Und was genau möchtest Du jetzt wissen / ist Dir unklar?



  • Hat denn deine HashTable-Klasse überhaupt Iteratoren umgesetzt, mit denen du arbeiten könntest? (die spendiert dir C++ nicht automatisch, die mußt du schon selber bereitstellen)



  • Äh, wenn Du versuchst, in einer Hashtabelle mit Iteratoren nach einem Schlüssel zu suchen, dann hast Du anscheinend das Prinzip einer Hashtabelle nicht verstanden.

    Suchen in einer Hashtabelle darf eben *nicht* bedeuten, dass man sich alle Elemente anschaut, sondern dass man direkt (bzw. über Umwege) zum korrekten Index springt, den man über mindestens einen Hash errechnet.


Anmelden zum Antworten