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.