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. |