Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Język C++

vector::reserve

[metoda] 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.

Składnia

C/C++
#include <vector>

namespace std
{
    template < class Type, class Allocator >
    void vector < Type, Allocator >::reserve( size_type iLiczbaElementow )
}

Argumenty

ArgumentOpis
size_type iLiczbaElementowMinimalna liczba elementów, która ma się mieścić w kontenerze bez konieczności wykonywania dodatkowej realokacji pamięci.

Opis szczegółowy

Metoda 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. Do realokacji dojdzie tylko wtedy, gdy wartość zwracana przez metodę » standard C++ » vectorcapacity jest mniejsza niż ta, która została przekazana jako argument do metody reserve.

Złożoność obliczeniowa metody: O(n), gdzie n oznacza liczbę elementów aktualnie znajdujących się w kontenerze. Wspomniane elementy przy realokacji pamięci muszą zostać przekopiowane do nowego obszaru pamięci.

Przykład

C/C++
#include <cstdio>
#include <vector>

int main()
{
    std::vector < int > dane;
    printf( "Zarezerwowana przestrzen na %d elementow.\n", dane.capacity() );
    dane.push_back( 5 );
    printf( "Zarezerwowana przestrzen na %d elementow.\n", dane.capacity() );
    dane.reserve( 50 );
    printf( "Zarezerwowana przestrzen na %d elementow.\n", dane.capacity() );
    return 0;
}
Standardowe wyjście programu:
Zarezerwowana przestrzen na 0 elementow.
Zarezerwowana przestrzen na 1 elementow.
Zarezerwowana przestrzen na 50 elementow.

Zagadnienia powiązane

capacityZwraca maksymalną liczbę elementów jaką może pomieścić kontener bez wykonywania realokacji pamięci. (metoda)

Linki zewnętrzne