Biblioteka C ++ - <vector>

Wprowadzenie

Wektory to kontener sekwencji, który może zmieniać rozmiar. Kontener to obiekty, które przechowują dane tego samego typu. Kontenery sekwencji przechowują elementy ściśle w kolejności liniowej.

Vector przechowuje elementy w ciągłych lokalizacjach pamięci i umożliwia bezpośredni dostęp do dowolnego elementu za pomocą operatora indeksu []. W przeciwieństwie do tablicy wektor może się zmniejszać lub rozszerzać w zależności od potrzeb w czasie wykonywania. Przechowywanie wektora jest obsługiwane automatycznie.

Aby obsługiwać funkcję zmniejszania i rozszerzania w czasie wykonywania, kontener wektorowy może przydzielić dodatkową pamięć, aby pomieścić możliwy wzrost, dzięki czemu kontener ma rzeczywistą pojemność większą niż rozmiar. Dlatego, w porównaniu do macierzy, wektor zużywa więcej pamięci w zamian za możliwość zarządzania pamięcią masową i dynamicznego wzrostu w efektywny sposób.

Wektory o zerowej wielkości są również prawidłowe. W takim przypadku vector.begin () i vector.end () wskazują na to samo położenie. Ale zachowanie wywołania front () lub back () jest niezdefiniowane.

Definicja

Poniżej znajduje się definicja std :: vector z pliku nagłówkowego <vector>

template < class T, class Alloc = allocator<T> > class vector;

Parametry

  • T - Typ zawartego elementu.

    T można zastąpić dowolnym innym typem danych, w tym typem zdefiniowanym przez użytkownika.

  • Alloc - Typ obiektu alokatora.

    Domyślnie używany jest szablon klasy alokatora, który definiuje najprostszy model alokacji pamięci i jest niezależny od wartości.

Typy członków

Następujące typy elementów członkowskich mogą być używane jako parametry lub zwracane typy przez funkcje składowe.

Sr.No. Typy członków Definicja
1 typ wartości T (pierwszy parametr szablonu)
2 Alokator_typ Alloc (drugi parametr szablonu)
3 odniesienie typ wartości&
4 const_reference const value_type &
5 wskaźnik typ wartości*
6 const_pointer const value_type *
7 iterator iterator dostępu swobodnego do typ_wartości
8 const_iterator iterator dostępu swobodnego do const value_type
9 reverse_iterator std :: reverse_iterator <iterator>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 typ_rozmiaru size_t
12 typ_różnicy ptrdiff_t

Funkcje z <vector>

Poniżej znajduje się lista wszystkich metod z nagłówka <vector>.

Konstruktorzy

Sr.No. Metoda i opis
1 vector :: vector domyślny konstruktor

Konstruuje pusty kontener bez elementów.

2 vector :: konstruktor wypełnienia wektorowego

Tworzy pojemnik z n elementów oraz assignd val do każdego elementu.

3 vector :: konstruktor zakresu wektorów

Konstruuje kontener z tyloma elementami w zakresie od pierwszego do ostatniego.

4 vector :: konstruktor kopiujący wektor

Konstruuje kontener z kopią każdego elementu obecnego w istniejącym kontenerze x.

5 vector :: konstruktor ruchu wektorowego

Konstruuje kontener z zawartością innych przy użyciu semantyki przenoszenia .

6 vector :: vector konstruktor listy inicjalizującej

Konstruuje kontener z listy inicjalizacyjnej.

Burzyciel

Sr.No. Metoda i opis
1 wektor :: ~ wektor

Niszczy kontener, zwalniając przydział pamięci kontenera.

Funkcje składowe

Sr.No. Metoda i opis
1 vector :: przypisz wersję wypełnienia

Przypisz nowe wartości do elementów wektora, zastępując stare.

2 vector :: przypisanie wersji zakresu

Przypisz nowe wartości do elementów wektora, zastępując stare.

3 vector :: przypisz wersję listy inicjalizatora

Przypisz nowe wartości do elementów wektora, zastępując stare.

4 wektor :: at

Zwraca odniesienie do elementu obecnego w miejscu n w wektorze.

5 wektor :: powrót

Zwraca odniesienie do ostatniego elementu wektora.

6 vector :: begin

Zwraca iterator o swobodnym dostępie wskazujący na pierwszy element wektora.

7 wektor :: pojemność

Zwraca rozmiar przydzielonej pamięci wyrażony w elementach.

8 wektor :: cbegin

Zwraca iterator o stałym dostępie swobodnym, który wskazuje początek wektora.

9 wektor :: cend

Zwraca iterator o stałym dostępie swobodnym, który wskazuje początek wektora.

10 wektor :: wyczyść

Niszczy wektor, usuwając wszystkie elementy z wektora i ustawia rozmiar wektora na zero.

11 wektor :: crbegin

Zwraca stały iterator odwrotny, który wskazuje na początek cofania kontenera.

12 wektor :: crend

Zwraca stały iterator odwrotny, który wskazuje odwrotny koniec wektora.

13 wektor :: dane

Zwraca wskaźnik do pierwszego elementu kontenera wektora.

14 wektor :: stanowisko

Rozszerza kontener, wstawiając nowy element na miejscu .

15 vector :: embrace_back

Wstawia nowy element na końcu wektora.

16 wektor :: pusty

Sprawdza, czy wektor jest pusty, czy nie.

17 wektor :: koniec

Zwraca iterator, który wskazuje na koniec elementu w kontenerze wektora.

18 vector :: erase pozycja wersji

Usuwa pojedynczy element z wektora.

19 vector :: erase range wersja

Usuwa pojedynczy element z wektora.

20 wektor :: przód

Zwraca odniesienie do pierwszego elementu wektora.

21 wektor :: get_allocator

Zwraca alokator powiązany z wektorem.

22 vector :: wstaw wersję pojedynczego elementu

Rozszerza iterator, wstawiając nowy element w pozycji.

23 vector :: wstaw wersję wypełnienia

Rozszerza wektor, wstawiając nowy element do kontenera.

24 vector :: insert range wersja

Rozszerza wektor, wstawiając nowy element do kontenera.

25 vector :: insert move wersja

Rozszerza wektor, wstawiając nowy element do kontenera.

26 vector :: insert wersja listy inicjalizacyjnej

Rozszerza wektor, wstawiając nowy element do kontenera.

27 wektor :: max_size

Zwraca maksymalną liczbę elementów, które mogą być przechowywane przez wektor.

28 vector :: operator = skopiuj wersję

Przypisz nową zawartość do wektora, zastępując stare i modyfikując rozmiar, jeśli to konieczne.

29 vector :: operator = przenieś wersję

Przypisz nową zawartość do wektora, zastępując stare i modyfikując rozmiar, jeśli to konieczne.

30 vector :: operator = wersja listy inicjalizacyjnej

Przypisz nową zawartość do wektora, zastępując stare i modyfikując rozmiar, jeśli to konieczne.

31 wektor :: operator []

Zwraca odwołanie do elementu obecnego w lokalizacji n .

32 wektor :: pop_back

Usuwa ostatni element z wektora i zmniejsza rozmiar wektora o jeden.

33 wektor :: push_back

Wstawia nowy element na koniec wektora i zwiększa rozmiar wektora o jeden.

34 wektor :: rbegin

Zwraca odwrotny iterator, który wskazuje na ostatni element wektora.

35 wektor :: rend

Zwraca iterator odwrotny, który wskazuje odwrotny koniec wektora.

36 wektor :: rezerwa

Żądania rezerwowania przepustowości wektorów powinny zawierać co najmniej n elementów.

37 vector :: resize

Zmienia rozmiar wektora.

38 wektor :: shrink_to_fit

Żąda, aby pojemnik zmniejszył swoją pojemność, aby pasował do jego rozmiaru.

39 wektor :: rozmiar

Zwraca liczbę elementów obecnych w wektorze.

40 vector :: swap

Zamienia zawartość wektora na zawartość wektora x .

Przeciążone funkcje niebędące członkami

Sr.No. Metoda i opis
1 operator ==

Sprawdza, czy dwa wektory są równe, czy nie.

2 operator! =

Sprawdza, czy dwa wektory są równe, czy nie.

3 operator <

Sprawdza, czy pierwszy wektor jest mniejszy od innego, czy nie.

4 operator <=

Sprawdza, czy pierwszy wektor jest mniejszy lub równy innemu, czy nie.

5 operator>

Sprawdza, czy pierwszy wektor jest większy od innego, czy nie.

6 operator> =

Sprawdza, czy pierwszy wektor jest większy lub równy innemu, czy nie.

7 zamiana

Zamienia zawartość dwóch wektorów.