Iterator listy C ++

Iterator listy C ++
Lista to struktura danych, która zawiera w niej elementy w postaci sekwencji. Podobnie jak tablice, zawiera także członków tego samego typu danych. W tym przewodniku dowiemy się o iteratorach na liście w języku programowania C ++.

Iteratorzy

Iterator zachowuje się jak wskaźnik, który wskazuje elementy wewnątrz listy. Iteratory są używane głównie do poruszania się przez dane w liście. Iteratory są również używane do wskazania adresu pamięci kontenerów. W tym artykule wyjaśniono niektóre operacje iteratorów.

Zaczynać()

Ta funkcja początkowa ma iterator zwracany z wartością pokazującą pierwszy element. Różni się zupełnie od funkcji front () iteratora, ponieważ funkcja przednia zwraca odniesienie, ale sam () zwraca sam iterator.

Koniec()

Zwraca iterator, który wskazuje na ostatni element listy.

Osiągnięcie()

Jest to ważna operacja, ponieważ służy do zwiększenia pozycji iteratora do określonej liczby wymienionej w parametrze.

Następny()

Ta funkcja zwraca nowy iterator po rozwinięciu swojej pozycji, co jest wspomniane w argumencie.

Prev ()

Jest to funkcja używana do wprowadzenia nowego iteratora, który pokazuje wartość zmniejszoną do opisanej liczby na liście.

Inserter ()

Jest to funkcja używana do wstawienia nowych elementów w dowolnej pozycji na liście. Ma dwa argumenty. Jedna to nazwa kontenera, a druga jest wskaźnikiem, który pokazuje pozycję, w której należy wstawić nowy element lub elementy.

Przykład 1

Początek (), end ():

Ten przykład zawiera kod źródłowy, aby wykazać działanie tych dwóch funkcji. Gdy stosujemy te funkcje na liście, biblioteka listy jest używana tutaj w pierwszym kroku.

#włączać

Następnie w programie głównym deklarujemy listę z 5 liczb całkowitych.

Lista myList 1,2,3,4,5;

Teraz chcemy wyświetlić całą zawartość listy. Więc używana jest pętla. Jak wiemy, A For Loop wymaga punktu początkowego i końcowego w inicjatywie pętli, aby rozpocząć pętlę na liście „MyList”. Funkcja początkowa jest używana tutaj. A na koniec „mylist. end () ”jest używany. „MyList” to obiekt używany do dostępu do listy.

Tworzony jest iterator, który rozpocznie się i porusza do końca, zwiększając w każdej pętli. Aby wykonać kod źródłowy, użyj kompilatora G ++ do kompilacji, a następnie wykonanie kodu. Przejdź do terminalu Linux, a następnie użyj poniżej cytowanych poleceń.

$ g ++ -o plik pliku.C
$ ./plik

Wynikowa wartość będzie zawierać wszystkie liczby, które wprowadziliśmy na listę za pośrednictwem programu głównego.

Przykład 2

Osiągnięcie ():

Jak opisano powyżej, funkcja ta służy do zwiększenia iteratora do określonej liczby przekazanej jako jego argument. Teraz rozważ poniższy przykład, w którym zastosowaliśmy klasę iteratora z klasą listy, aby wszystkie funkcje iteratorów można było łatwo wykonywać.

Po deklaracji listy iterator zostaje zadeklarowany na liście.

Lista iterator :: ptr = myList.zaczynać();

„PTR” jest przedmiotem iteratora. Ten iterator przypisuje się funkcję początkowa (). Teraz musimy skoczyć w kierunku konkretnego punktu, zwiększymy pozycję iteratora do 2 i odbywa się to za pomocą funkcji Advance ().

Postęp (PTR, 2);

Ta funkcja przyjmuje obiekt iteratora i liczbę, aby pokazać pozycję, w której chcemy przesunąć iterator. Następnie wyświetlana jest pozycja iteratora. Domyślnie było to na pierwszej pozycji; Korzystając z Advance, teraz będzie to 3.

Zapisz kod źródłowy w pliku, a następnie uruchom go, aby zobaczyć wykonane wartości.

Przykład 3: Next (), press ()

Oba iteratory są zwracane z wartością, gdy iterator jest zwiększany, a po zmniejszeniu iteratora. Pozycje są wymienione w argumencie, ponieważ są one opisane wcześniej () parametr funkcji. Po korzystaniu z bibliotek w programie głównym lista jest zadeklarowana najpierw w przykładzie. Następnie iteratory są tworzone, a następnie zadeklarowane na listę. Dwa oddzielne iteratory są tworzone z różnymi obiektami wskaźnika iteratora dla obu funkcji.

Najpierw użyjemy następnego iteratora, który zwróci nowy iterator, który wskazuje na 4.

Auto it = następny (ptr, 3);

Iterator jest automatycznie generowany i wywoła następną funkcję z wskaźnikiem i numerem, który chce, aby iterator został zwiększony. Podobnie jak funkcja Advance (), iterator zwiększy się w kierunku danej pozycji. Teraz następnym krokiem jest użycie funkcji prev (). Prev () będzie również zawierać wskaźnik obiektu utworzony powyżej i liczbę do powrotu. Ta funkcja zwróci nowy iterator, który wskazuje na 3.

Auto it1 = prev (ftr, 3);

W końcu w obu przypadkach wyświetlimy pozycję nowych iteratorów. Obie wartości są wyświetlane za pomocą wskaźników, ponieważ przechowują pozycje na liście. Skompiluj kod, a następnie zobaczysz, że obie funkcje iteratorów prev () i następne () wyświetlają wartości na liście za pośrednictwem kompilatora.

Przykład 4

Inserter ()

Jak wyjaśniliśmy powyżej, ta funkcja wprowadza nową wartość na dowolnej pozycji na liście. Więc teraz, na przykładzie, najpierw zadeklaruj listę z 3 liczbami liczb całkowitych.

W Inserter () możemy wstawić pojedynczą liczbę i listę liczb. Tak więc w tym przykładzie wstawymy listę trzech liczb wewnątrz listy, którą utworzyliśmy powyżej. Utwórz iterator, a następnie zadeklaruj go do utworzonej listy. Ponieważ musimy wstawić nową listę w określonym miejscu, musimy zwiększyć iterator w tej pozycji. I odbywa się to za pomocą iteratora Advance ().

Postęp (PTR, 2);

Zwiększy iterator do drugiej pozycji; Oznacza to po 2, nowa lista zostanie wstawiona. Tak więc za pomocą obiektów elementy jednej listy skopiują na drugą listę. Użyjemy funkcji kopiowania tutaj.

Kopia (AR1.początek (), AR1. end (), inserter (ar, ptr));

Funkcja kopiowania użyje początku () i end (), aby zacząć kopiować elementy od początku drugiej listy i kontynuować kopiowanie do końca listy. Funkcja Inserter zajmuje obiekt pierwszej listy i obiekt iteratora, aby wskazać pozycję, w której lista musi zostać włożona.

Aby wyświetlić wszystkie elementy, użyjemy pętli dla.

Powstałe wartości uzyskane z wykonywania powyższego kodu pokazują, że pierwsza lista zawiera liczby obu list.

Wniosek

„Iterator listy C” to artykuł zawierający informacje dotyczące rodzajów artykułów, które zastosowaliśmy do listy. Wszystkie te operacje są wyjaśnione podstawowym opisem. Cytowaliśmy również kilka przykładów dla każdej funkcji iteratora. Przykłady te są zaimplementowane w systemie operacyjnym Linux za pomocą edytora tekstu i terminalu Linux.