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
#include <vector>
namespace std
{
template < class Type, class Allocator >
void vector < Type, Allocator >::reserve( size_type iLiczbaElementow )
}
Argumenty
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ę
capacity 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
#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
capacity | Zwraca maksymalną liczbę elementów jaką może pomieścić kontener bez wykonywania realokacji pamięci. (metoda) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.