W C ++ Lista STD :: jest jak kontener, który przechowuje elementy w niekontrolownej lokalizacji pamięci. „Lista std ::” jest zaimplementowana jako podwójnie połączona lista. Możemy wstawić lub usunąć dowolny element listy, który jest przechowywany w dowolnym miejscu, co sprawia, że listy dwukierunkowe i sekwencyjne. Dwukierunkowy, ponieważ możemy uzyskać dostęp do elementów listy z przodu i tyłu listy (z dowolnej lokalizacji). Sekwencyjny, ponieważ możemy uzyskać dostęp do elementów w dowolnym miejscu w sekwencji. Listy zachowują się jako podwójnie powiązane listy. Podwójnie połączone listy mogą przechowywać swoje elementy w dowolnym miejscu w pamięci i można je uzyskać z dowolnej lokalizacji w czasie wykonywania. Lista należy do standardowej biblioteki szablonów, takich jak tablice i wektory, ale listy nie pozwalają na szybki dostęp do innych struktur danych. Omówmy „STD :: List” w tym artykule z praktyczną wdrożeniem list z różnymi operacjami.
Integruj bibliotekę
Aby korzystać z list w kodzie, programista musi zaimportować wymaganą bibliotekę. Biblioteka do korzystania z listy to „lista". Możemy to zaimportować, dodając następujące wyodrębnione instrukcje:
#włączać
Bez importowania tej biblioteki nie będziemy mogli korzystać z listy i jej metod w kodzie.
Dlaczego używamy listy?
Musisz się zastanawiać, dlaczego używamy listy, gdy mamy wektory i tablice. Zobaczysz, dlaczego wybieramy listę, a nie inny rodzaj struktury danych po przeczytaniu argumentów wymienionych w następujący sposób:
Składnia
Szablon < class_type , class Allocation = allocator> Lista klas;
Lub
STD :: ListaLIST_1;
Atrybut „STD” reprezentuje standardową bibliotekę szablonów. Operator rozdzielczości zakresu mówi kompilatorowi, że będziemy korzystać z klasy „STD”. Następnie definiujemy typ listy wewnątrz nawiasów kątowych. Poza nawiasami kątowymi podajemy nazwę listy.
Parametry
Metody
Istnieje kilka funkcji, za pomocą których możemy umożliwić operacje twarogu z listy.
Użyj STD ::
Porozmawiajmy o wdrożeniu list w programie za pomocą standardowego szablonu listy dla list.
Kod:
#włączać
#włączać
int main ()
std :: lista listy_1 = 8.72, 6.7, 9.4, 5.3;
STD :: Cout<<"The values are: \n";
dla (float value: list_1)
STD :: Cout << value << '\n';
Pierwszy krok pokazuje integrację dwóch bibliotek. Pierwsza biblioteka zawiera wszystkie metody wejściowe i wyjściowe, których używamy do uzyskania lub wydrukowania wartości. Następnie druga biblioteka to . Importujemy to, aby uzyskać dostęp do metod list. Funkcja main () jest wywoływana. Tutaj definiujemy listę typów float i inicjujemy listę w taki sam sposób, jak inicjujemy tablice. „Std :: List” mówi kompilatorowi, że definiujemy listę. W nawiasach kątowych „Float” mówi typ listy. Następnie reprezentuj wiadomość na ekranie za pomocą polecenia „STD :: Cout”. Następnie uruchom pętlę „dla”, aby wydrukować listę na konsoli. Wewnątrz nawiasu „For” definiuje zmienną typu zmiennoprzecinkowego, która uzyskuje dostęp do wartości z listy. Nie możemy bezpośrednio wydrukować całej listy, dlatego używamy pętli. Wewnątrz ciała „for” zastosuj „std :: cout”, aby pokazać wartości z listy. W ten sposób inicjujemy i drukujemy listy.
Wyjście
Wartości to:Uzyskaj rozmiar listy i wstaw elementy
Obserwujmy, w jaki sposób możemy uzyskać rozmiar listy i wstawić elementy na liście po zainicjowaniu listy.
Kod:
#włączać
#włączać
int main ()
std :: List List_0 1,3,4,6,7;
STD :: List :: Iterator ITER_0;
ITER_0 = list_0.zaczynać();
List_0.wstaw (ITER_0,5);
List_0.wstaw (ITER_0,2,80);
--ITER_0;
STD :: Cout << "List_0 contains:";
for (ITER_0 = list_0.zaczynać(); ITER_0!= List_0.koniec(); ++ ITER_0)
STD :: Cout << "\t" << *iter_0;
STD :: Cout<<"\nThe size of the list is :"<powrót 0;
Biblioteki, aby uzyskać dostęp do metod wejściowych/wyjściowych, a metody listy są najpierw importowane. Następnie wywołaj metodę main (), aby zdefiniować i zainicjować listę typu liczb całkowitych. Tutaj definiujemy kolejny iterator listy typu liczb całkowitych „ITER_0”, który iteruje na liście. Teraz użyj metody początkowej (), która zwraca iterator pierwszego elementu listy. Następnie chcemy wstawić wartość na pierwszej liście, jaką jest „List_0”. Więc nazywamy funkcję insert (). Zawiera dwa argumenty - pierwszy to nazwa_prawy, która tymczasowo przechowuje nowy element. A drugim argumentem jest „wartość”. W metodzie początkowej () nie podaliśmy lokalizacji ani indeksu, w którym chcemy wstawić tę nową wartość, więc jest ona automatycznie przechowywana w pierwszym indeksie i przesuwa wartość, która jest już przechowywana w tym indeksie. Włóż kolejną wartość i przejdź trzy parametry do metody Insert (). Po pierwsze, itera. Po drugie, informuje liczbę wartości, które chcemy wstawić. A trzecia to wartość, która jest wstawiona. Tutaj „80” jest wstawiane do drugiego i trzeciego indeksu na liście. Po wstawieniu dokonujemy zmniejszenia listy. Wydrukuj tekst „List_0:” na konsoli i użyj pętli „for”, aby wyświetlić elementy listy. W pętli „for” zainicjuj iterator, aby rozpocząć od listy i niech zapętlaj na liście, aż dotrzemy do końca listy i zwiększamy iterator. W treści „for” wyświetl listę elementów, które otrzymujemy przez inną iterator listy. „*ITER_0” uzyskuje dostęp do lokalizacji elementów listy, a „Cout” drukuje wartość na konsoli. Poza pętlą „for”, za pomocą funkcji size (), uzyskujemy rozmiar listy.
Wyjście:
List_0 zawiera: 5 80 80 1 3 4 6 7Wniosek
W tym artykule szczegółowo wyjaśniliśmy „Std :: List”. Po krótkim wprowadzeniu rozmawialiśmy o tym, dlaczego potrzebujemy list, gdy istnieją inne pojemniki, składnię, metody i praktyczne przykłady list. Listy są łatwe w użyciu ze względu na ich wbudowane metody. Możemy wstawić elementy w dowolnym miejscu na liście i to samo dotyczy ekstrakcji. Działa jako podwójnie połączona lista, ale zapewnia więcej obiektów niż lista podwójnie połączona.