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