Wektor w C ++ standardowej bibliotece szablonów (STL) z przykładem

Spisie treści:

Anonim

Co to jest wektor C ++?

C ++ WEKTOR jest dynamiczny tablica może automatycznie rozmiaru się. Zmiana rozmiaru następuje po dodaniu lub usunięciu elementu z wektora. Magazynowanie jest obsługiwane automatycznie przez kontener. Elementy wektora są przechowywane w ciągłej pamięci. Pozwala to programistom C ++ na dostęp do elementów wektora i przechodzenie przez nie przy użyciu iteratorów.

Wstawianie nowych danych do wektora odbywa się na jego końcu. To zajmuje różny czas. Usunięcie elementu z wektora zajmuje stały czas. Powodem jest to, że nie ma potrzeby zmiany rozmiaru wektora. Wstawienie lub usunięcie elementu na początku wektora wymaga czasu liniowego.

W tym samouczku języka C ++ nauczysz się:

  • Co to jest wektor C ++?
  • Kiedy używać wektora?
  • Jak zainicjować wektory w C ++
  • Iteratory
  • Modyfikatory
  • Przykład 1
  • Przykład 2
  • Pojemność
  • Przykład 3

Kiedy używać wektora?

Wektor C ++ powinien być używany w następujących okolicznościach:

  • W przypadku elementów danych, które stale się zmieniają.
  • Jeśli rozmiar danych nie jest znany przed rozpoczęciem, wektor nie będzie wymagał ustawienia maksymalnego rozmiaru kontenera.

Jak zainicjować wektory w C ++

Składnia wektorów w C ++ to:

vector  name (items)
  • Jak pokazano powyżej, zaczynamy od słowa kluczowego vector.
  • Typ danych to typ danych elementów, które mają być przechowywane w wektorze.
  • Nazwa to nazwa wektora lub elementów danych.
  • Pozycje oznaczają liczbę elementów danych wektora. Ten parametr jest opcjonalny.

Iteratory

Celem iteratorów jest ułatwienie nam dostępu do elementów przechowywanych w wektorze. To obiekt, który działa jak wskaźnik. Oto typowe iteratory obsługiwane przez wektory C ++:

  • vector :: begin (): daje iterator wskazujący na pierwszy element wektora.
  • vector :: end (): daje iterator, który wskazuje na koniec elementu wektora.
  • vector :: cbegin (): działa tak samo jak vector :: begin (), ale nie ma możliwości modyfikowania elementów.
  • vector :: cend (): to to samo, co vector :: end (), ale nie może modyfikować elementów wektora.

Modyfikatory

Modyfikatory służą do zmiany znaczenia określonego typu danych. Oto typowe modyfikatory w C ++:

  • vector :: push_back (): ten modyfikator wypycha elementy z tyłu.
  • vector :: insert (): Do wstawiania nowych elementów do wektora w określonej lokalizacji.
  • vector :: pop_back (): ten modyfikator usuwa elementy wektorowe z tyłu.
  • vector :: erase (): Służy do usuwania zakresu elementów z określonej lokalizacji.
  • vector :: clear (): usuwa wszystkie elementy wektorowe.

Przykład 1

#include #include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
  2. Dołącz plik nagłówka wektorowego do naszego kodu. Pozwoli nam to pracować z wektorami w C ++.
  3. Uwzględnij przestrzeń nazw std, aby używać jej klas i funkcji bez wywoływania jej.
  4. Wywołaj funkcję main (), do której należy dodać logikę programu.
  5. {Oznacza początek treści funkcji main ().
  6. Zadeklaruj wektor o nazwie nums do przechowywania zestawu liczb całkowitych.
  7. Utwórz pętlę for, aby pomóc nam w iteracji po wektorze. Zmienna pomoże nam iteracyjne nad elementów wektorów, od 1 st do 5 th elementów.
  8. Wepchnij elementy do wektora num od tyłu. Dla każdej iteracji doda to bieżącą wartość zmiennej a do wektora, która wynosi od 1 do 5.
  9. Wydrukuj tekst na konsoli
  10. Użyj zmiennej iteratora a, aby iterować po elementach numerów wektorów od początku do ostatniego elementu. Zauważ, że używamy iteratorów vector :: begin () i vector :: end ().
  11. Wydrukuj wartości wskazywane przez zmienną iteratora an na konsoli dla każdej iteracji.
  12. Wydrukuj tekst na konsoli. \ N jest znakiem nowej linii, przenoszącym kursor do nowej linii, aby stamtąd drukować.
  13. Użyj zmiennej iteratora, aby iterować po elementach numerów wektorów od początku do ostatniego elementu. Zauważ, że używamy iteratorów vector :: cbegin () i vector :: cend ().
  14. Wydrukuj wartości wskazywane przez zmienną iteratora a na konsoli dla każdej iteracji.
  15. Funkcja główna powinna zwrócić wartość, jeśli program działa pomyślnie.
  16. Koniec treści funkcji main ().

Przykład 2

#include #include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
  2. Dołącz plik nagłówka wektorowego do naszego kodu, aby móc korzystać z jego funkcji.
  3. Uwzględnij przestrzeń nazw std, aby używać jej klas bez wywoływania jej.
  4. Wywołaj funkcję main (). Logikę programu należy dodać w jego treści.
  5. Początek treści funkcji main ().
  6. Zadeklaruj wektor o nazwie nums do przechowywania niektórych wartości całkowitych.
  7. Przechowuj 5 elementów w numerach wektora. Każdy o wartości 1.
  8. Wydrukuj tekst na konsoli
  9. Użyj zmiennej iteratora a, aby iterować po elementach numerów wektorów.
  10. Wydrukuj wartości numerów wektorów na konsoli dla każdej iteracji.
  11. Dodaj wartość 2 na końcu liczb wektora.
  12. Zadeklaruj zmienną całkowitą n do przechowywania rozmiaru numerów wektorów.
  13. Wydrukuj ostatnią wartość numerów wektorów obok innego tekstu. Powinien zwrócić 2.
  14. Usuń ostatni element z numerów wektorów. Te 2 zostaną usunięte.
  15. Wydrukuj tekst na konsoli. \ N przenosi kursor do nowej linii, aby wydrukować tam tekst.
  16. Użyj zmiennej iteratora a, aby iterować po elementach numerów wektorów.
  17. Wydrukuj wartości numerów wektorów na konsoli dla każdej iteracji.
  18. Wstaw wartość 7 na początek numerów wektora.
  19. Wydrukuj pierwszą wartość numerów wektorów obok innego tekstu. Powinien zwrócić 7.
  20. Usuń wszystkie elementy z numerów wektorów.
  21. Po wyczyszczeniu całej zawartości wydrukuj rozmiar numeru wektora obok innego tekstu. Powinien zwrócić 0.
  22. Koniec treści funkcji main ().

Pojemność

Użyj następujących funkcji, aby określić pojemność wektora:

  • Size () - Zwraca liczbę elementów w wektorze.
  • Max_size () - Zwraca największą liczbę elementów, które wektor może przechowywać.
  • Capacity () - Zwraca ilość przestrzeni dyskowej przydzielonej do wektora.
  • Resize () - Zmienia rozmiar kontenera tak, aby zawierał n elementów. Jeśli bieżący rozmiar wektora jest większy niż n, tylne elementy zostaną usunięte z wektora. Jeśli aktualny rozmiar wektora jest mniejszy niż n, dodatkowe elementy zostaną dodane z tyłu wektora.
  • Empty () -i t zwraca prawdę, jeśli wektor jest pusty, w przeciwnym razie zwraca fałsz.

Przykład 3

#include #include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"<

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu, aby użyć jego funkcji.
  2. Dołącz plik nagłówka wektorowego do naszego kodu, aby móc korzystać z jego funkcji.
  3. Uwzględnij przestrzeń nazw std w naszym kodzie, aby używać jej klas bez wywoływania jej.
  4. Wywołaj funkcję main (). Logikę programu należy dodać w treści tej funkcji.
  5. Utwórz wektor o nazwie vector1 do przechowywania liczb całkowitych.
  6. Użyj pętli for, aby utworzyć zmienną x z wartościami od 1 do 10.
  7. Wepchnij wartości zmiennej x do wektora.
  8. Wydrukuj rozmiar wektora obok innego tekstu na konsoli.
  9. Wydrukuj pojemność wektora obok innego tekstu na konsoli.
  10. Wydrukuj maksymalną liczbę elementów, które wektor może pomieścić, obok innego tekstu na konsoli.
  11. Zmień rozmiar wektora, aby zawierał tylko 5 elementów.
  12. Wydrukuj nowy rozmiar wektora obok innego tekstu.
  13. Sprawdź, czy wektor nie jest pusty.
  14. Wydrukuj tekst na konsoli, jeśli wektor nie jest pusty.
  15. Użyj instrukcji else, aby określić, co zrobić, jeśli wektor jest pusty.
  16. Tekst do wydrukowania na konsoli, jeśli wektor jest pusty.
  17. Program musi zwrócić wartość po pomyślnym zakończeniu.
  18. Koniec treści funkcji main ().

Podsumowanie:

  • Wektor C ++ to dynamiczna tablica, która może automatycznie zmieniać swój rozmiar, gdy element jest dodawany lub usuwany z niego.
  • Magazynowanie wektora jest obsługiwane automatycznie przez kontener.
  • Elementy wektora są przechowywane w ciągłej pamięci, aby można było uzyskać do nich dostęp, a następnie przemierzać je za pomocą iteratorów.
  • Wstawianie nowych danych do wektora odbywa się na jego końcu.
  • Wstawianie danych do wektora zajmuje różny czas.
  • Usunięcie elementu z wektora zajmuje stały czas.
  • Wstawienie lub usunięcie elementu na początku wymaga czasu liniowego.
  • Wektory należy stosować w przypadku elementów danych, które stale się zmieniają.
  • Możesz również użyć wektorów, jeśli rozmiar danych nie jest znany przed rozpoczęciem.