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:
vectorname (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:
- Dołącz plik nagłówkowy iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Dołącz plik nagłówka wektorowego do naszego kodu. Pozwoli nam to pracować z wektorami w C ++.
- Uwzględnij przestrzeń nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołaj funkcję main (), do której należy dodać logikę programu.
- {Oznacza początek treści funkcji main ().
- Zadeklaruj wektor o nazwie nums do przechowywania zestawu liczb całkowitych.
- 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.
- 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.
- Wydrukuj tekst na konsoli
- 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 ().
- Wydrukuj wartości wskazywane przez zmienną iteratora an na konsoli dla każdej iteracji.
- Wydrukuj tekst na konsoli. \ N jest znakiem nowej linii, przenoszącym kursor do nowej linii, aby stamtąd drukować.
- 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 ().
- Wydrukuj wartości wskazywane przez zmienną iteratora a na konsoli dla każdej iteracji.
- Funkcja główna powinna zwrócić wartość, jeśli program działa pomyślnie.
- 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:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
- Dołącz plik nagłówka wektorowego do naszego kodu, aby móc korzystać z jego funkcji.
- Uwzględnij przestrzeń nazw std, aby używać jej klas bez wywoływania jej.
- Wywołaj funkcję main (). Logikę programu należy dodać w jego treści.
- Początek treści funkcji main ().
- Zadeklaruj wektor o nazwie nums do przechowywania niektórych wartości całkowitych.
- Przechowuj 5 elementów w numerach wektora. Każdy o wartości 1.
- Wydrukuj tekst na konsoli
- Użyj zmiennej iteratora a, aby iterować po elementach numerów wektorów.
- Wydrukuj wartości numerów wektorów na konsoli dla każdej iteracji.
- Dodaj wartość 2 na końcu liczb wektora.
- Zadeklaruj zmienną całkowitą n do przechowywania rozmiaru numerów wektorów.
- Wydrukuj ostatnią wartość numerów wektorów obok innego tekstu. Powinien zwrócić 2.
- Usuń ostatni element z numerów wektorów. Te 2 zostaną usunięte.
- Wydrukuj tekst na konsoli. \ N przenosi kursor do nowej linii, aby wydrukować tam tekst.
- Użyj zmiennej iteratora a, aby iterować po elementach numerów wektorów.
- Wydrukuj wartości numerów wektorów na konsoli dla każdej iteracji.
- Wstaw wartość 7 na początek numerów wektora.
- Wydrukuj pierwszą wartość numerów wektorów obok innego tekstu. Powinien zwrócić 7.
- Usuń wszystkie elementy z numerów wektorów.
- Po wyczyszczeniu całej zawartości wydrukuj rozmiar numeru wektora obok innego tekstu. Powinien zwrócić 0.
- 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:
- Dołącz plik nagłówkowy iostream do naszego kodu, aby użyć jego funkcji.
- Dołącz plik nagłówka wektorowego do naszego kodu, aby móc korzystać z jego funkcji.
- Uwzględnij przestrzeń nazw std w naszym kodzie, aby używać jej klas bez wywoływania jej.
- Wywołaj funkcję main (). Logikę programu należy dodać w treści tej funkcji.
- Utwórz wektor o nazwie vector1 do przechowywania liczb całkowitych.
- Użyj pętli for, aby utworzyć zmienną x z wartościami od 1 do 10.
- Wepchnij wartości zmiennej x do wektora.
- Wydrukuj rozmiar wektora obok innego tekstu na konsoli.
- Wydrukuj pojemność wektora obok innego tekstu na konsoli.
- Wydrukuj maksymalną liczbę elementów, które wektor może pomieścić, obok innego tekstu na konsoli.
- Zmień rozmiar wektora, aby zawierał tylko 5 elementów.
- Wydrukuj nowy rozmiar wektora obok innego tekstu.
- Sprawdź, czy wektor nie jest pusty.
- Wydrukuj tekst na konsoli, jeśli wektor nie jest pusty.
- Użyj instrukcji else, aby określić, co zrobić, jeśli wektor jest pusty.
- Tekst do wydrukowania na konsoli, jeśli wektor jest pusty.
- Program musi zwrócić wartość po pomyślnym zakończeniu.
- 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.