Lista vs wektor C ++

Lista vs wektor C ++
Lista i wektory są zawarte w kategorii struktur danych.

Lista w c++

Lista to sekwencja, która obsługuje przejście zarówno w przód, jak i do tyłu, i wiadomo, że jest to podwójnie połączona lista sekwencjonowana. Możemy wstawić usuwanie elementów w dowolnej pozycji, na początku, na końcu, a także na środku.

Lista x;
X.insert_begin (7);
X.delete_end ();

Zużycie czasu, znane przez złożoność, jest takie samo w przypadku wstawienia i usuwania w dowolnym momencie na liście. Lista służy do przechowywania elementów w nim i ich adresu. Te adresy są wskazywane przez wskaźniki. Wskaźniki te pomagają łatwo uzyskać dostęp do wartości w następnych lub poprzednich pozycjach w kierunku przemieszczania się w kierunku wstecznym i do przodu. Pamięć na liście znajduje się dynamicznie za każdym razem, gdy dodajemy nowy element do listy.

Dlaczego mielibyśmy korzystać z listy?

Struktura danych listy pokazuje lepszą wydajność podczas wkładania danych, usuwania lub przenoszenia elementów od jednego punktu do drugiego. Jest również dobry w stosowaniu algorytmów, które skutecznie wykonują operacje.

Składnia

Lista < class Type, class Alloc =allocator > Lista klas;

T: reprezentuje typ danych elementów. Możemy użyć dowolnego typu danych. Alloc: Opisuje obiekt alokatora. Używana jest klasa alokatora. Zależy to od wartości i wykorzystuje prosty sposób przydzielania pamięci.

Działanie z listy C ++

Lista działa w taki sposób, że po pierwsze, musimy dodać bibliotekę list, aby działać ze wszystkimi funkcjami, które zapewnia skutecznie w naszym programie. W programie lista jest zadeklarowana, jak opisaliśmy w składni. Metoda jest dość prosta. Rodzaj danych elementów jest zdefiniowany z nazwą listy. Korzystając z operatora przypisania, wstawiamy wartości liczb całkowitych na liście. Wszystkie elementy są wyświetlane przy użyciu pętli dla formy, ponieważ musimy wyświetlać każdy element obecny w każdym indeksie.

Wektor w c++

Wektor to dynamiczna tablica, która może automatycznie zmienić rozmiar po dodaniu lub usunięciu dowolnego elementu. Elementy wstawione do wektorów są umieszczane w przylegającej do przechowywania, dzięki czemu można je łatwo uzyskać za pomocą iteratorów. Elementy są wstawiane z tyłu wektora.

wektor x;
X.wstaw (7);
X.usuwać();

Wstawienie danych na końcu trwa czas różnicowy. Podczas gdy elementy są usuwane z wektorów za pomocą stałego czasu.

Dlaczego powinniśmy używać wektorów?

Wolimy używać kontenera wektorowego w programie C ++, gdy nie musimy wspominać o rozmiarze danych przed uruchomieniem programu. Korzystając z wektorów, nie musimy ustawić maksymalnego rozmiaru pojemnika.

Składnia

wektor vector_name (elementy);

Składnia rozpoczyna się za pomocą słowa kluczowego wektorowego. Typ danych to rodzaj elementów/elementów, które należy wprowadzić do wektorów. „Nazwa” pokazuje nazwę wektora lub elementu danych. „Elementy” reprezentują liczbę wstawionych elementów. To jest opcjonalny parametr.

Działanie wektorów C ++

W programie głównym, jak opisano w składni, deklarujemy kontener wektorowy, podając typ danych elementów i nazwę wektora. Po wprowadzeniu wartości wektora wyświetlimy wszystkie elementy za pomocą pętli dla. Iterator pomoże iterować w całej pętli. W ten sposób wektor działa w języku programowania C ++.

Różnice między listami i wektorami w C++

Usunięcie i wstawienie

Zarówno wstawianie, jak i usunięcie elementów na liście są bardzo wydajne w porównaniu z wektorami. Wynika to z faktu, że podczas gdy wstawienie danych na początku, koniec lub na środku listy wymaga wymiany jednego lub dwóch wskazówek.

Z drugiej strony w wektorach procedura wstawiania i usuwania spowoduje przesunięcie wszystkich elementów o jeden. Ponadto, jeśli pamięć nie jest wystarczająca, przydzielono więcej pamięci, a całe dane są tam przesyłane.

Zatem zarówno wstawianie, jak i usuwanie na listach są bardziej skuteczne i wydajniejsze niż wektory.

Losowy dostęp

Na listach trudno jest pojawić się losowy dostęp, ponieważ mówi się, że wewnątrz list obecna jest podwójnie połączona lista. Więc jeśli chcesz uzyskać dostęp do szóstej pozycji, najpierw musisz iterować pierwsze 5 elementów na liście.

Aw przypadku wektorów wszystkie elementy są przechowywane w przylegających lokalizacjach pamięci w celu wykonania losowego dostępu w wektorach.

Użycie wskazówek

Musimy użyć wskazówek na liście do przechowywania adresu. Tak więc, według programistów ekspertów, jest to bardzo logiczne podczas radzenia sobie z wskaźnikami na listach. Praca z listami jest uważana za trudną w porównaniu z wektorami, ponieważ wektory używają normalnych operacji, takich jak tablice.

Oto tabelaryczna reprezentacja niektórych głównych różnic między listami i wektorami.

Wektor w c++ Lista w c++
Zastosowana pamięć jest przylegająca. Wykorzystuje nieporęczną pamięć.
Ma domyślny rozmiar. W przypadku list nie ma domyślnego rozmiaru.
W wektorach przestrzeń jest przydzielana tylko do obecnych danych. W listach danych i dla węzłów do przechowywania adresów w IT wymaganych jest dodatkowa przestrzeń.
Wkładanie elementów na końcu wykorzystuje stały czas w dowolnym punkcie wektora; to jest 0. Proces usunięcia na liście jest bardzo tani od dowolnego punktu.
Losowy dostęp jest łatwo. Nie można ubiegać się o losowy dostęp na liście.

Wdrożenie listy

W tym przykładzie wykorzystaliśmy operacje takie jak wyświetlanie danych na liście, odwrotnie i sortowanie funkcji. Ponadto używane są również funkcje początkowe i end ().

Funkcja wyświetlania jest zadeklarowana osobno. Używa tego początku () i end (), aby przejść przez listę i wyświetlać wszystkie elementy za pomocą obiektu. Utworzyliśmy dwie listy tutaj. Obie listy są wprowadzane do pozycji z przodu i z tyłu. Dane zostaną wprowadzone z obu kierunków.

Następnie wywołamy funkcję wyświetlania, aby zobaczyć całą jej zawartość. A także użyj wbudowanych funkcji, takich jak odwrócenie i sortowanie.

Wyjście:

Wdrożenie wektora

Ten przykład obejmuje tworzenie wektorów. Utworzony jest pojedynczy wektor, ale wprowadzamy 5 wartości za pomocą pętli „for”.

Po wprowadzeniu danych wyświetlimy rozmiar wektora utworzonego przez wszystkie elementy w nim. Następnie wstawiamy nową wartość, używając ponownie pętli „for”. Ale tym razem wykorzystaliśmy funkcje początkowe i end (). Widzimy, że wartość jest wprowadzana na koniec. A rozmiar wektora jest również aktualizowany zgodnie z samymi danymi.

Wyjście:

Wniosek

„Lista vs wektor C ++” opisuje różnice między listą a wektorem. Początkowo szczegółowo opisaliśmy listę i wektory i pracowali nad nimi. Aby pomóc użytkownikowi w rozróżnianiu tych kontenerów. Dwa przykłady są wdrażane w systemie operacyjnym Ubuntu Linux, który weryfikuje różnicę w deklarowaniu, wkładaniu i usuwaniu elementów z kontenerów.