Wektor w C++ Standardowa biblioteka szablonów (STL) z przykładem

Czym są sterowniki C++ Wektor?

A C++ wektor jest dynamiczną tablicą zdolną do automatycznej zmiany rozmiaru. Zmiana rozmiaru następuje po dodaniu lub usunięciu elementu z wektora. Magazynowanie odbywa się automatycznie poprzez kontener. Elementy wektora są przechowywane w ciągłej pamięci. To pozwala C++ programistom dostęp do elementów wektorów i poruszanie się po nich za pomocą iteratorów.

Wstawianie nowych danych do wektora odbywa się na jego końcu. Wymaga to zróżnicowanego czasu. 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.

Kiedy używać wektora?

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

  • Kiedy 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ł ustawiania maksymalnego rozmiaru kontenera.

Jak inicjować wektory w C++

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

vector <data-type> name (items)
  • Jak pokazano powyżej, zaczynamy od słowa kluczowego wektor.
  • 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 umożliwienie nam dostępu do elementów przechowywanych w wektorze. To obiekt, który działa jak wskaźnik. Oto popularne iteratory obsługiwane przez C++ wektory:

  • wektor:: początek(): daje iterator wskazujący pierwszy element wektora.
  • wektor:: koniec(): daje iterator wskazujący na element końcowy wektora.
  • wektor::cbegin(): jest taka sama jak wektor::begin(), ale nie ma możliwości modyfikowania elementów.
  • wektor::cend(): jest taki sam jak wektor::end(), ale nie może modyfikować elementów wektorowych.

modyfikatory

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

  • wektor::push_back(): Modyfikator ten wypycha elementy od tyłu.
  • wektor::wstaw(): Do wstawiania nowych elementów do wektora w określonym miejscu.
  • wektor::pop_back(): Ten modyfikator usuwa elementy wektora z tyłu.
  • wektor::usuń(): Służy do usuwania zakresu elementów z określonej lokalizacji.
  • wektor::jasny(): Usuwa wszystkie elementy wektora.

1 przykład

#include <iostream> 
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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;
}

Wyjście:

modyfikatory

Oto zrzut ekranu kodu:

modyfikatory

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu. Umożliwi nam to odczytywanie i zapisywanie na konsoli.
  2. Dołącz plik nagłówkowy wektora do naszego kodu. Umożliwi nam to pracę z wektorami w C++.
  3. Dołącz przestrzeń nazw std, aby móc korzystać z jej klas i funkcji bez wywoływania jej.
  4. Wywołaj funkcję main(), wewnątrz 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, która pomoże nam iterować po wektorze. Zmienna pomoże nam iterować po elementach wektorowych, począwszy od 1st do 5th elementy.
  8. Wciśnij elementy do wektora num od tyłu. Dla każdej iteracji spowoduje to dodanie do wektora bieżącej wartości zmiennej a, która wynosi od 1 do 5.
  9. Wydrukuj tekst na konsoli
  10. Użyj zmiennej iteratora a, aby iterować po elementach wektorów nums od początku do elementu końcowego. 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 to znak nowej linii, przesuwający kursor do nowej linii, aby stamtąd wydrukować.
  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 główna powinna zwrócić wartość, jeśli program działa pomyślnie.
  16. Koniec treści funkcji main().

2 przykład

#include <iostream>
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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();			
}

Wyjście:

modyfikatory

Oto zrzut ekranu kodu:

modyfikatory

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu, aby móc korzystać z jego funkcji.
  2. Dołącz plik nagłówkowy wektora do naszego kodu, aby go użyć Funkcje.
  3. Dołącz przestrzeń nazw std, aby używać jej klas bez wywoływania jej.
  4. Wywołaj funkcję main(). Logikę programu należy dodać wewnątrz 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 wektorach nums. Każdy o wartości 1.
  8. Wydrukuj tekst na konsoli
  9. Użyj zmiennej iteratora a do iteracji po elementach wektorów nums.
  10. Wydrukuj wartości liczb wektorowych na konsoli dla każdej iteracji.
  11. Dodaj wartość 2 na końcu liczb wektorowych.
  12. Zadeklaruj zmienną całkowitą n, aby przechowywać rozmiar wektorów num.
  13. Wydrukuj ostatnią wartość liczb wektorowych obok innego tekstu. Powinien zwrócić 2.
  14. Usuń ostatni element z wektorów num. 2 zostaną usunięte.
  15. Wydrukuj tekst na konsoli. \n przesuwa kursor do nowej linii, aby wydrukować tam tekst.
  16. Użyj zmiennej iteratora a do iteracji po elementach wektorów nums.
  17. Wydrukuj wartości liczb wektorowych na konsoli dla każdej iteracji.
  18. Wstaw wartość 7 na początek liczb wektorowych.
  19. Wydrukuj pierwszą wartość liczb wektorowych obok innego tekstu. Powinno zwrócić 7.
  20. Usuń wszystkie elementy z numerów wektorowych.
  21. Po wyczyszczeniu całej zawartości wydrukuj rozmiar wektora num obok innego tekstu. Powinno zwrócić 0.
  22. Koniec treści funkcji main().

Pojemność

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

  • Rozmiar() –Zwraca liczbę elementów w wektorze.
  • Największy rozmiar() -Zwraca największą liczbę elementów, jakie wektor może przechowywać.
  • Pojemność () –To zwraca ilość miejsca przydzielonego 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 () –tjt zwraca wartość true, jeśli wektor jest pusty. W przeciwnym razie zwraca wartość false.

3 przykład

#include <iostream> 
#include <vector> 
using namespace std;
int main() {
	vector<int> 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"<<endl;
	else
		cout << "Vector is empty"<<endl;
	return 0;
}

Wyjście:

Pojemność

Oto zrzut ekranu kodu:

Pojemność

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego kodu, aby skorzystać z jego funkcji.
  2. Dołącz plik nagłówkowy wektora do naszego kodu, aby móc korzystać z jego funkcji.
  3. Dołącz przestrzeń nazw std do naszego kodu, 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 wektor1 do przechowywania liczb całkowitych.
  6. Użyj pętli for, aby utworzyć zmienną x o wartościach od 1 do 10.
  7. Wciśnij wartości zmiennej x do wektora.
  8. Wydrukuj rozmiar wektora wraz z innym tekstem na konsoli.
  9. Wydrukuj pojemność wektora wraz z innym tekstem 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 wraz z innym tekstem.
  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

  • A C++ wektor to dynamiczna tablica zdolna do automatycznej zmiany rozmiaru 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 można było uzyskać do nich dostęp, a następnie przechodzić za pomocą iteratorów.
  • Wstawianie nowych danych do wektora odbywa się na jego końcu.
  • Wstawienie danych do wektora wymaga czasu różnicowego.
  • Usunięcie elementu z wektora zajmuje stały czas.
  • Wstawienie lub usunięcie elementu na początku zajmuje czas liniowy.
  • W przypadku elementów danych, które stale się zmieniają, należy używać wektorów.
  • Możesz także użyć wektorów, jeśli rozmiar danych nie jest znany przed rozpoczęciem.