Stavo leggendo Why is there no reallocation functionality in C++ allocators? e Is it possible to create an array on the heap at run-time, and then allocate more space whenever needed?, che indicano chiaramente che la riallocazione di una matrice dinamica di oggetti è impossibile.Viene utilizzato un suggerimento di allocazione?
Tuttavia, in Il C++ standard libreria da Josuttis, si afferma un allocatore, allocator
, ha una funzione allocate
con la seguente sintassi
pointer allocator::allocate(size_type num, allocator<void>::pointer hint = 0)
dove il hint
ha un'implementazione significato definito, che può essere usato per aiutare a migliorare le prestazioni.
Esistono implementazioni che sfruttano questo?
Ah, quindi è per allocare gli oggetti uno accanto all'altro piuttosto che riallocare un oggetto esistente? –
Non puoi semplicemente passare il prossimo indirizzo disponibile. Il suggerimento deve essere stato ottenuto da una precedente chiamata a "allocare". – Potatoswatter