Come ricompattare la memoria in un vector

Ciao,
domanda lanciata durante l'ultimo incontro:
vector alloca la memoria in modo "esponenziale", la domanda come possiamo fare per ricompattare la memoria ed evitare gli sprechi?

Commenti

Anonimo ha detto…
Hint 1:
cosa permette di fare swap (metodo di vector)?
Anonimo ha detto…
Hint 2:
cosa succede se utilizzo il costruttore di copie in un vector
Anonimo ha detto…
Hint 3:
vector< T >(???).swap(???);
Anonimo ha detto…
Salve a tutti i morcini,
per cambiare realmente la capacità di storage allocata per un vettore v ( verificabile con il metodo capacity() ), possiamo utilizzare la seguente sintassi:

vector< myclass >( v ).swap( v );

creo un oggetto temporaneo e lo inizializzo con il reale contenuto di v, poi scambio il contenuto di v con quello del temporaneo, ricompattando di fatto v.
Anonimo ha detto…
Ok,
ma anonimo non vale, lascia almeno le iniziali per essere premiato ;-)

Post popolari in questo blog

Peer reviews catch 60% of the defects...

JNI? there's someone who remembers something?