Iterator jest zorientowanym obiektowo wzorcem programowania, który umożliwia przechodzenie przez kolekcję, niezależnie od rzeczywistej implementacji lub adresów obiektów w pamięci fizycznej. Jest to jeden z wzorców projektowania behawioralnego Gang of Four.
Jestem nowy w języku C ++. Zacząłem używać wektorów i zauważyłem, że w całym kodzie, który widzę, aby iterować przez wektor za pomocą indeksów, pierwszy parametr forpętli jest zawsze oparty na wektorze. W Javie mógłbym zrobić coś takiego z ArrayList: for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); } Czy jest …
Od Javascript 1.7 istnieje obiekt Iterator , który umożliwia to: 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(); czy jest coś takiego w node.js? …
Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator(); Możemy użyć Iteratordo przejścia a Setlub a Listlub a Map. Ale ListIteratormoże być używany tylko do przechodzenia przezList , nie może przechodzić przez Set. Czemu? Wiem, że główna różnica polega na tym, że z iteratorem możemy podróżować tylko …
Próbuję iterować po mapie maszynopisu, ale ciągle pojawiają się błędy i nie mogłem jeszcze znaleźć rozwiązania dla tak trywialnego problemu. Mój kod to: myMap : Map<string, boolean>; for(let key of myMap.keys()) { console.log(key); } I otrzymuję błąd: Typ „IterableIteratorShim <[string, boolean]>” nie jest tablicą ani ciągiem. Pełny ślad stosu: Error: …
W poniższym kodzie wykonuję pętlę przez mapę i sprawdzam, czy element musi zostać usunięty. Czy można bezpiecznie wymazać element i kontynuować iterację, czy też muszę zebrać klucze w innym kontenerze i wykonać drugą pętlę, aby wywołać funkcję erase ()? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != port_map.end(); pm_it++) …
Bardziej ciekawa składnia niż problem do rozwiązania ... Mam dwie tablice o równej długości i chcę wykonać iterację po obu naraz - na przykład wypisać obie ich wartości w określonym indeksie. @budget = [ 100, 150, 25, 105 ] @actual = [ 120, 100, 50, 100 ] Wiem, że mogę …
Czytając dokumentację Java dla listy ADT mówi: Interfejs List udostępnia cztery metody pozycyjnego (indeksowanego) dostępu do elementów listy. Listy (podobnie jak tablice Java) są liczone od zera. Zauważ, że te operacje mogą być wykonywane w czasie proporcjonalnym do wartości indeksu dla niektórych implementacji (na przykład klasy LinkedList). W związku z …
Jaka jest dokładna różnica między tymi dwoma interfejsami? Czy Enumerationma zalety w stosunku do używania Iterator? Gdyby ktokolwiek mógł to rozwinąć, byłby wdzięczny za artykuł referencyjny.
Mam ciąg wieloliniowy zdefiniowany w ten sposób: foo = """ this is a multi-line string. """ Ten ciąg użyliśmy jako wejście testowe dla parsera, który piszę. Funkcja parsera otrzymuje file-obiekt jako dane wejściowe i wykonuje iterację po nim. Wywołuje również next()metodę bezpośrednio, aby pominąć wiersze, więc naprawdę potrzebuję iteratora jako …
Czy istnieje proste wyrażenie generatora, które może dać nieskończone elementy? To jest kwestia czysto teoretyczna. Nie ma tu potrzeby "praktycznej" odpowiedzi :) Na przykład łatwo jest utworzyć skończony generator: my_gen = (0 for i in xrange(42)) Jednak aby stworzyć nieskończoną, muszę „zanieczyścić” moją przestrzeń nazw fałszywą funkcją: def _my_gen(): while …
W Scali często używasz iteratora, aby wykonać forpętlę w rosnącej kolejności, na przykład: for(i <- 1 to 10){ code } Jak byś to zrobił, żeby od 10 do 1? Myślę, że 10 to 1daje pusty iterator (jak zwykła matematyka zakresu)? Zrobiłem skrypt Scala, który rozwiązuje to, wywołując odwrócenie w iteratorze, …
C ++ 11 zapewnia wiele sposobów iteracji po kontenerach. Na przykład: Pętla oparta na zakresie for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) Jednak jaki jest zalecany sposób iteracji na dwóch (lub więcej) kontenerach tego samego rozmiaru, aby osiągnąć coś takiego: for(unsigned i = 0; i < containerA.size(); ++i) …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.