Als «iterator» getaggte Fragen

Ein Iterator ist ein objektorientiertes Programmiermuster, das das Durchlaufen einer Sammlung ermöglicht, unabhängig von der tatsächlichen Implementierung oder den Objektadressen im physischen Speicher. Es ist eines der Verhaltensmuster der Gang of Four.

5
Iterieren Sie über Objektschlüssel in node.js
Seit Javascript 1.7 gibt es ein Iterator- Objekt, das Folgendes ermöglicht: var a={a:1,b:2,c:3}; var it=Iterator(a); function iterate(){ try { console.log(it.next()); setTimeout(iterate,1000); }catch (err if err instanceof StopIteration) { console.log("End of record.\n"); } catch (err) { console.log("Unknown error: " + err.description + "\n"); } } iterate(); Gibt es so etwas in …



3
Unterschied zwischen Iterator und Listiterator?
Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator(); Wir können verwenden Iterator, um ein Setoder ein Listoder ein zu durchqueren Map. Aber ListIteratornur ein zu durchqueren verwendet werden List, es kann eine nicht durchqueren Set. Warum? Ich weiß, dass der Hauptunterschied darin besteht, dass wir mit …


12
Iterieren über Typescript Map
Ich versuche, eine Typoskript-Map zu durchlaufen, erhalte jedoch immer wieder Fehler und konnte noch keine Lösung für ein so triviales Problem finden. Mein Code lautet: myMap : Map<string, boolean>; for(let key of myMap.keys()) { console.log(key); } Und ich bekomme den Fehler: Der Typ 'IterableIteratorShim <[string, boolean]>' ist kein Array-Typ oder …

3
Was passiert, wenn Sie erase () für ein Kartenelement aufrufen, während Sie von Anfang bis Ende iterieren?
Im folgenden Code durchlaufe ich eine Karte und teste, ob ein Element gelöscht werden muss. Ist es sicher, das Element zu löschen und weiter zu iterieren, oder muss ich die Schlüssel in einem anderen Container sammeln und eine zweite Schleife ausführen, um erase () aufzurufen? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it …
133 c++  stl  iterator 



5
Warum sollte das Durchlaufen einer Liste schneller sein als das Indizieren?
Lesen Sie die Java-Dokumentation für die ADT-Liste : Die List-Schnittstelle bietet vier Methoden für den positionellen (indizierten) Zugriff auf Listenelemente. Listen (wie Java-Arrays) basieren auf Null. Beachten Sie, dass diese Operationen bei einigen Implementierungen (z. B. der LinkedList-Klasse) zeitlich proportional zum Indexwert ausgeführt werden können. Daher ist das Iterieren über …
125 java  list  iterator 


6
Iterieren Sie über die Zeilen einer Zeichenfolge
Ich habe eine mehrzeilige Zeichenfolge wie folgt definiert: foo = """ this is a multi-line string. """ Diese Zeichenfolge haben wir als Testeingabe für einen Parser verwendet, den ich schreibe. Die Parser-Funktion empfängt ein file-Objekt als Eingabe und iteriert darüber. Es ruft die next()Methode auch direkt auf, um Zeilen zu …
119 python  string  iterator 

7
Gibt es einen Ausdruck für einen unendlichen Generator?
Gibt es einen einfachen Generatorausdruck, der unendliche Elemente ergeben kann? Dies ist eine rein theoretische Frage. Hier ist keine "praktische" Antwort erforderlich :) Zum Beispiel ist es einfach, einen endlichen Generator herzustellen: my_gen = (0 for i in xrange(42)) Um jedoch eine unendliche zu erstellen, muss ich meinen Namespace mit …

7
Scala nach unten oder abnehmend für Schleife?
In Scala verwenden Sie häufig einen Iterator, um eine forSchleife in aufsteigender Reihenfolge auszuführen, z. for(i <- 1 to 10){ code } Wie würden Sie es tun, damit es von 10 auf 1 geht? Ich denke, 10 to 1gibt einen leeren Iterator (wie übliche Bereichsmathematik)? Ich habe ein Scala-Skript erstellt, …

9
Was ist der beste Weg, um zwei oder mehr Container gleichzeitig zu durchlaufen?
C ++ 11 bietet mehrere Möglichkeiten zum Durchlaufen von Containern. Beispielsweise: Bereichsbasierte Schleife for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) Was ist jedoch die empfohlene Methode, um zwei (oder mehr) Container derselben Größe zu durchlaufen, um Folgendes zu erreichen: for(unsigned i = 0; i < containerA.size(); ++i) { …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.