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.
Jakie jest użycie yieldsłowa kluczowego w Pythonie i co robi? Na przykład próbuję zrozumieć ten kod 1 : def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild A to jest osoba dzwoniąca: result, candidates …
Mam dwie iterowalne wersje w Pythonie i chcę je przeglądać parami: foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b Powinno to skutkować: f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 …
Jakie są reguły unieważniania iteratora dla kontenerów C ++? Najlepiej w formie listy podsumowującej. (Uwaga: ma to być wpis do często zadawanych pytań na temat C ++ w programie Stack Overflow . Jeśli chcesz skrytykować pomysł podania w tym formularzu odpowiedzi na najczęściej zadawane pytania, to miejsce na meta, które …
Szukam zwięzłego sposobu przekonwertowania pliku Iteratorna Streamlub bardziej szczegółowo, aby „wyświetlić” iterator jako strumień. Ze względu na wydajność chciałbym uniknąć kopiowania iteratora na nowej liście: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); W oparciu o niektóre sugestie w komentarzach próbowałem również …
Jaka jest najbardziej podstawowa definicja „iterowalnego”, „iteratora” i „iteracji” w Pythonie? Przeczytałem wiele definicji, ale nie jestem w stanie zidentyfikować dokładnego znaczenia, ponieważ nadal nie chce się ono zatracić. Czy ktoś może mi pomóc z 3 definicjami w kategoriach laika?
Iteruję nad wektorem i potrzebuję indeksu, na który obecnie wskazuje iterator. AFAIK można to zrobić na dwa sposoby: it - vec.begin() std::distance(vec.begin(), it) Jakie są zalety i wady tych metod?
Powinienem użyć std::sort(numbers.begin(), numbers.end(), std::greater<int>()); lub std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators posortować wektor w kolejności malejącej? Czy są jakieś zalety lub wady jednego lub drugiego podejścia?
Zrobiłem kolekcję, dla której chcę zapewnić iterator o swobodnym dostępie w stylu STL. Szukałem przykładowej implementacji iteratora, ale nie znalazłem żadnej. Wiem o potrzebie przeciążeń stałych []i *operatorów. Jakie są wymagania, aby iterator był „w stylu STL” i jakich innych pułapek należy unikać (jeśli w ogóle)? Dodatkowy kontekst: dotyczy biblioteki …
Chciałbym uzyskać pierwszy element z listy spełniający warunek. Ważne jest, aby wynikowa metoda nie przetwarzała całej listy, która może być dość duża. Na przykład wystarczająca jest następująca funkcja: def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i Tej funkcji można użyć w następujący sposób: …
Biorąc pod uwagę Iterator<Element>, w jaki sposób możemy przekonwertować Iteratordo ArrayList<Element>(lub List<Element>) w najlepszym i najszybszym sposobem możliwe, tak, że możemy użyć ArrayList„s operacje na takich jak on get(index), add(element)itp
Mam niestandardową klasę kontenera, dla której chciałbym napisać klasy iteratori const_iterator. Nigdy wcześniej tego nie robiłem i nie znalazłem odpowiedniego poradnika. Jakie są wytyczne dotyczące tworzenia iteratorów i o czym powinienem wiedzieć? Chciałbym również uniknąć powielania kodu (czuję to const_iteratori iteratordzielę się wieloma rzeczami; czy jedna z nich należy podklasować? …
Weź następujące dwa wiersze kodu: for (int i = 0; i < some_vector.size(); i++) { //do stuff } I to: for (some_iterator = some_vector.begin(); some_iterator != some_vector.end(); some_iterator++) { //do stuff } Powiedziano mi, że preferowany jest drugi sposób. Dlaczego to dokładnie jest?
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.