2012-04-13 11 views

Respuesta

6

vector<T>::resize(0) no debe causar una reasignación o eliminación de memoria asignada, y por esta razón en la mayoría de los casos es preferible a vector<T>::clear().

Para más detalles ver las respuestas a esta pregunta: std::vector resize downward

+4

'clear' no causa una reasignación tampoco, así que no veo por qué sería preferible ... – ildjarn

+0

que he visto, al menos, una implementación donde 'clear' liberó la memoria. –

+0

@MarkB: no debería haberlo hecho. : P – GManNickG

2

Haciendo un vector::resize(0) oa un recuento más pequeños en lugar de recuento actual no debe liberar cualquier memoria. Sin embargo, puede destruir estos elementos.

Para una referencia en std::vector::resize, echar un vistazo a std::vector::resize

Cuestiones relacionadas