« vector, szablon klasy, C++ »
vector - [Kontener] Struktura danych - tablica. (szablon klasy)
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!
Opracował: Piotr DejaVu Szawdyński
« standard C++ »

vector

[szablon klasy] [Kontener] Struktura danych - tablica.

Składnia

C/C++
#include <vector>

namespace std
{
   
    template <
    class Type,
    class Allocator = allocator < Type >
    >
    class vector;
   
}

Parametry szablonu

ParametrOpis
class TypeTyp danych jakiego mają być elementy, które są przechowywane przez kontener.
class AllocatorAlokator, który jest odpowiedzialny za zarządzanie pamięcią. Domyślnie używany jest standardowy alokator pamięci, tj. std::allocator<Type>.

Opis szczegółowy

Szablon vector jest to struktura danych reprezentująca tablicę. Tablica jest zbudowana z elementów o typie przekazanym poprzez parametr szablonu Type. Niniejszy kontener umożliwia modyfikację rozmiaru tablicy w trakcie życia obiektu. Dane w tablicy są ułożone w pamięci zawsze w sposób ciągły co oznacza, że kopiowanie danych do kontenera i z kontenera za pomocą funkcji takich jak np. » standard Cmemcpy jest zawsze bezpieczne.

Niniejszy kontener należy używać zawsze wtedy, gdy priorytetem jest posiadanie szybkiego dostępu do dowolnego elementu kontenera.

Szablon vector umożliwia dodawanie oraz usuwanie elementów na koniec tablicy w czasie stałym - O(1). Dodawanie oraz usuwanie elementów z początku bądź ze środka kontenera możliwe jest w czasie liniowym - O(n), gdzie n to liczba elementów w kontenerze.

Kontener vector dokonuje realokacji pamięci gdy jakakolwiek metoda szablonu musi zwiększyć rozmiar tablicy kontenera i jednocześnie w kontenerze nie ma wolnego obszaru pamięci na nowo dodawane elementy.

Przykład

C/C++
#include <cstdio>
#include <vector>
int main()
{
    std::vector < int > dane;
    dane.push_back( 5 );
    dane.push_back( 2 );
    dane.push_back( 3 );
    dane.push_back( 1 );
   
    for( size_t i = 0; i < dane.size(); i++ )
         printf( "%d, ", dane[ i ] );
   
    printf( "\n\nKoniec\n" );
    return 0;
}
Standardowe wyjście programu:
5, 2, 3, 1,

Koniec

Linki zewnętrzne

Wykaz elementów dowiązanych

assignUsuwa wszystkie istniejące elementy z kontenera, a następnie kopiuje wskazane elementy do kontenera. (metoda)
atZwraca referencję na element, który znajduje się na podanej pozycji w kontenerze » standard C++vector. (metoda)
backZwraca referencję na ostatni element w kontenerze. (metoda)
beginZwraca iterator wskazujący na pierwszy element. (metoda)
capacityZwraca maksymalną liczbę elementów jaką może pomieścić kontener bez wykonywania realokacji pamięci. (metoda)
clearUsuwa wszystkie elementy z kontenera vector. (metoda)
emptySprawdza czy kontener jest pusty. (metoda)
endZwraca iterator wskazujący na element będący za ostatnim elementem. (metoda)
eraseUsuwa jeden element lub wiele elementów z kontenera vector występujących na podanej pozycji lub w podanym zakresie. (metoda)
frontZwraca referencję na pierwszy element w kontenerze. (metoda)
get_allocatorZwraca kopię alokatora używanego do tworzenia elementów kontenera » standard C++vector. (metoda)
insertWstawia jeden element lub wiele elementów do kontenera vector na określonej pozycji. (metoda)
max_sizeMaksymalna możliwa długość tablicy kontenera » standard C++vector, wyrażona w liczbie elementów. (metoda)
operator[]Zwraca referencję na element, który znajduje się na podanej pozycji w kontenerze » standard C++vector. (operator - metoda)
pop_backUsuwa jeden element z kontenera vector, znajdujący się na jego końcu. (metoda)
push_backDodaje nowy element na końcu kontenera vector. (metoda)
rbeginZwraca iterator odwrotny wskazujący na ostatni element. (metoda)
rendZwraca iterator odwrotny wskazujący na element występujący bezpośrednio przed pierwszym elementem. (metoda)
reserveRezerwuje tyle miejsca w kontenerze, żeby pomieściła się wskazana liczba elementów bez konieczności wykonywania dodatkowej realokacji pamięci przy ich dodawaniu. (metoda)
resizeUstawia nowy rozmiar kontenera vector. (metoda)
sizeZwraca liczbę elementów znajdujących się aktualnie w kontenerze. (metoda)
swapKontenery » standard C++vector zamieniają się posiadanymi danymi. (metoda)