Wektor w C++ Standardowej Bibliotece Szablonów (STL) z Przykładem

Co to jest wektor C++?

DO WEKTOR C++ to dynamiczna tablica zdolna do automatycznej zmiany rozmiaru. Zmiana rozmiaru następuje po dodaniu lub usunięciu elementu z wektora. Magazyn jest obsługiwany automatycznie przez kontener. Elementy wektora są przechowywane w ciągłej pamięci. Pozwala to programistom C++ na dostęp i przechodzenie do elementów wektora za pomocą iteratorów.

Wstawianie nowych danych do wektora odbywa się na jego końcu. Zajmuje to czas różnicowy. 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 zajmuje czas liniowy.

W tym samouczku C++ dowiesz się:

Kiedy używać wektora?

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

  • Gdy mamy do czynienia z elementami 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: |_+_|

  • 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 dla danych wektora. Ten parametr jest opcjonalny.

Iteratory

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

  • wektor:: początek(): daje iterator wskazujący na pierwszy element wektora.
  • wektor:: koniec(): daje iterator, który wskazuje na element wektora przeszłości.
  • wektor::cpoczątek(): to to samo co vector::begin(), ale nie ma możliwości modyfikowania elementów.
  • wektor :: cend (): to to samo co vector::end(), ale nie można modyfikować elementów wektora.

Modyfikatory

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

  • wektor::push_back(): Ten modyfikator wypycha elementy z tyłu.
  • wektor::wstaw(): Do wstawiania nowych elementów do wektora w określonej lokalizacji.
  • wektor::pop_back(): Ten modyfikator usuwa elementy wektorowe z tyłu.
  • wektor::wymaż(): Służy do usuwania szeregu elementów z określonej lokalizacji.
  • wektor::wyczyść(): Usuwa wszystkie elementy wektorowe.

Przykład 1

 vector name (items) 

Wyjście:

Oto zrzut ekranu kodu:

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu. Umożliwi nam czytanie i zapisywanie w konsoli.
  2. Dołącz plik nagłówka wektorowego do naszego kodu. Umożliwi nam pracę 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(), wewnątrz której powinna zostać dodana logika programu.
  5. { oznacza początek ciała funkcji main().
  6. Zadeklaruj wektor o nazwie nums do przechowywania zbioru liczb całkowitych.
  7. Utwórz pętlę for, która pomoże nam iterować po wektorze. Zmienna pomoże nam iterować po elementach wektora, od 1NSdo 5NSelementy.
  8. Wsuń elementy do wektora num od tyłu. Dla każdej iteracji spowoduje to dodanie bieżącej wartości zmiennej a do wektora, który wynosi od 1 do 5.
  9. Wydrukuj tekst na konsoli
  10. Użyj zmiennej iteratora a, aby iterować po elementach liczb wektorowych od początku do elementu przeszłego do końca. 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. to znak nowego wiersza, przesuwający kursor do nowego wiersza, aby stamtąd drukować.
  13. Użyj zmiennej iteratora, aby iterować po elementach liczb wektorowych od początku do elementu końcowego. 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 main 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; 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 << '
Output from cbegin and cend: '; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << ' '; return 0; } 

Wyjście:

Oto zrzut ekranu kodu:

Wyjaśnienie kodu:

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

Pojemność

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

  • Rozmiar() - Zwraca liczbę elementów w wektorze.
  • Największy rozmiar() -Zwraca największą liczbę elementów, które wektor może przechowywać.
  • Pojemność () –To zwraca ilość miejsca w pamięci przydzielonej wektorowi.
  • Zmień rozmiar () –To 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 bieżący rozmiar wektora jest mniejszy niż n, z tyłu wektora zostaną dodane dodatkowe elementy.
  • Pusty () –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 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 << '
Last element: ' << nums[n - 1]; nums.pop_back(); cout << '
Vector contents: '; for (int a = 0; a < nums.size(); a++) cout << nums[a] << ' '; nums.insert(nums.begin(), 7); cout << '
First element: ' << nums[0]; nums.clear(); cout << '
Size after clear(): ' << nums.size(); } 

Wyjście:

Oto zrzut ekranu kodu:

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu, aby użyć jego funkcji.
  2. Dołącz plik nagłówka wektora do naszego kodu, aby 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(). Logika programu powinna zostać dodana 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 o wartościach od 1 do 10.
  7. Wstaw wartości zmiennej x do wektora.
  8. Wydrukuj rozmiar wektora obok innego tekstu na konsoli.
  9. Wydrukuj na konsoli pojemność wektora wraz z innym tekstem.
  10. Wydrukuj maksymalną liczbę elementów, które wektor może przechowywać wraz z innym tekstem na konsoli.
  11. Zmień rozmiar wektora, aby zawierał tylko 5 elementów.
  12. Wydrukuj nowy rozmiar wektora wraz z innym tekstem.
  13. Sprawdź, czy wektor nie jest pusty.
  14. Wydrukuj tekst w 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 w konsoli, jeśli wektor jest pusty.
  17. Program musi zwrócić wartość po pomyślnym zakończeniu.
  18. Koniec treści funkcji main().

Streszczenie:

  • Wektor C++ to dynamiczna tablica, która może automatycznie zmieniać swój rozmiar po dodaniu lub usunięciu elementu.
  • Przechowywanie wektora jest obsługiwane automatycznie przez kontener.
  • Elementy wektora są przechowywane w ciągłej pamięci, aby uzyskać do nich dostęp, a następnie przejść za pomocą iteratorów.
  • Wstawianie nowych danych do wektora odbywa się na jego końcu.
  • Wstawienie danych do wektora zajmuje czas różniczkowy.
  • Usunięcie elementu z wektora zajmuje stały czas.
  • Wstawienie lub usunięcie elementu na początku zajmuje czas liniowy.
  • Wektorów należy używać w przypadku elementów danych, które zmieniają się konsekwentnie.
  • Możesz również użyć wektorów, jeśli rozmiar danych nie jest znany przed rozpoczęciem.