Czytałem Why is there no reallocation functionality in C++ allocators? i Is it possible to create an array on the heap at run-time, and then allocate more space whenever needed?, które jasno wskazują, że realokacja dynamicznej tablicy obiektów jest niemożliwa.Czy używana jest podpowiedź dotycząca alokacji?
Jednak w C++ Standardowa biblioteka przez Josuttis, stwierdza się podzielnik, allocator
, posiada funkcję allocate
z następującą składnią
pointer allocator::allocate(size_type num, allocator<void>::pointer hint = 0)
gdzie hint
ma implementację określone znaczenie, które mogą być używane w celu poprawy wydajności.
Czy są jakieś implementacje, które wykorzystują to?
Ah, więc jest to przydzielanie obiektów obok siebie zamiast ponownego przydzielania istniejącego obiektu? –
Nie można po prostu przekazać następnego dostępnego adresu. Wskazówka musiała zostać uzyskana z poprzedniego wywołania do 'allocate'. – Potatoswatter