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.
Chcę mieć odwrócony widok listy na liście (w podobny sposób, jak List#sublistzapewnia widok listy sublist na liście). Czy jest jakaś funkcja zapewniająca tę funkcjonalność? Nie chcę tworzyć żadnej kopii listy ani modyfikować listy. Wystarczyłoby, gdybym w tym przypadku znalazł przynajmniej jedną iterator do tyłu. Wiem też, jak to zrobić. Pytam …
Mam funkcję generatora, jak poniżej: def myfunct(): ... yield result Zwykłym sposobem wywołania tej funkcji byłoby: for r in myfunct(): dostuff(r) Moje pytanie: czy istnieje sposób na uzyskanie tylko jednego elementu z generatora, kiedy tylko chcę? Na przykład chciałbym zrobić coś takiego: while True: ... if something: my_element = pick_just_one_element(myfunct()) …
Napisałem więc sporo kodu, który uzyskuje dostęp do elementów w wektorze stl według indeksu [], ale teraz muszę skopiować tylko fragment wektora. Wygląda na vector.insert(pos, first, last)to, że jest to funkcja, której chcę ... ale mam tylko pierwszą i ostatnią jako ints. Czy jest jakiś fajny sposób na uzyskanie iteratora …
Każdy standardowy kontener ma metodę begini enddo zwracania iteratorów dla tego kontenera. Jednak C ++ 11 najwyraźniej wprowadził wolne funkcje o nazwie std::begini std::endktóre wywołują funkcje begini end. Zamiast pisać auto i = v.begin(); auto e = v.end(); piszesz auto i = std::begin(v); auto e = std::end(v); W swoim wystąpieniu, …
Zastanawiam się, dlaczego cbegini cendzostały wprowadzone w C ++ 11? Jakie są przypadki, gdy wywołanie tych metod różni się od stałych przeciążeń begini end?
Posiadając iteratorobiekt, czy istnieje coś szybszego, lepszego lub bardziej poprawnego niż zrozumienie listy, aby uzyskać listę obiektów zwróconych przez iterator? user_list = [user for user in user_iterator]
Dlaczego Iteratorinterfejs się nie rozszerza Iterable? iterator()Metoda może po prostu wrócić this. Czy jest to celowe czy tylko nadzór nad projektantami Javy? Byłoby wygodnie móc użyć pętli dla każdego z iteratorami w następujący sposób: for(Object o : someContainer.listSomeObjects()) { .... } gdzie listSomeObjects()zwraca iterator.
W C ++, jaki jest typ a std::map<>::iterator? Wiemy, że obiekt ittypu std::map<A,B>::iteratorma przeciążenie, operator ->które zwraca a std::pair<A,B>*, i że std::pair<>ma firstisecond . Ale czemu odpowiadają te dwa elementy i dlaczego musimy uzyskać dostęp do wartości przechowywanej na mapie jako it->second?
Więc iteruję w takim zakresie: (1..100).each do |n| # n = 1 # n = 2 # n = 3 # n = 4 # n = 5 end Ale chciałbym zrobić iterację po dziesiątkach. Więc zamiast zwiększać no 1, następna nbędzie faktycznie 10, potem 20, 30 itd. Itd.
Rozważać: >>> lst = iter([1,2,3]) >>> next(lst) 1 >>> next(lst) 2 Tak więc, postęp iteratora jest, zgodnie z oczekiwaniami, obsługiwany przez mutację tego samego obiektu. W takim przypadku spodziewałbym się: a = iter(list(range(10))) for i in a: print(i) next(a) pomijać co drugi element: wywołanie to nextpowinno przesuwać iterator jeden raz, …
Próbuję nauczyć się C ++, więc wybacz mi, jeśli to pytanie pokazuje brak podstawowej wiedzy, widzisz, faktem jest, że mam brak podstawowej wiedzy. Potrzebuję pomocy przy tworzeniu iteratora dla klasy, którą stworzyłem. Mam klasę „Kształt”, która zawiera zbiór punktów. Mam klasę „Piece”, która odwołuje się do Shape i definiuje pozycję …
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.