Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Język 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

assign Usuwa wszystkie istniejące elementy z kontenera, a następnie kopiuje wskazane elementy do kontenera. (metoda)
at Zwraca referencję na element, który znajduje się na podanej pozycji w kontenerze » standard C++vector. (metoda)
back Zwraca referencję na ostatni element w kontenerze. (metoda)
begin Zwraca iterator wskazujący na pierwszy element. (metoda)
capacity Zwraca maksymalną liczbę elementów jaką może pomieścić kontener bez wykonywania realokacji pamięci. (metoda)
clear Usuwa wszystkie elementy z kontenera vector. (metoda)
empty Sprawdza czy kontener jest pusty. (metoda)
end Zwraca iterator wskazujący na element będący za ostatnim elementem. (metoda)
erase Usuwa jeden element lub wiele elementów z kontenera vector występujących na podanej pozycji lub w podanym zakresie. (metoda)
front Zwraca referencję na pierwszy element w kontenerze. (metoda)
get_allocator Zwraca kopię alokatora używanego do tworzenia elementów kontenera » standard C++vector. (metoda)
insert Wstawia jeden element lub wiele elementów do kontenera vector na określonej pozycji. (metoda)
max_size Maksymalna 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_back Usuwa jeden element z kontenera vector, znajdujący się na jego końcu. (metoda)
push_back Dodaje nowy element na końcu kontenera vector. (metoda)
rbegin Zwraca iterator odwrotny wskazujący na ostatni element. (metoda)
rend Zwraca iterator odwrotny wskazujący na element występujący bezpośrednio przed pierwszym elementem. (metoda)
reserve Rezerwuje 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)
resize Ustawia nowy rozmiar kontenera vector. (metoda)
size Zwraca liczbę elementów znajdujących się aktualnie w kontenerze. (metoda)
swap Kontenery » standard C++vector zamieniają się posiadanymi danymi. (metoda)