¿Hay alguna manera de reducir la capacidad de un vector?reducir la capacidad de un vector stl
Mi código inserta valores en un vector (sin conocer su número de antemano), y cuando esto finaliza, los vectores se usan solo para operaciones de lectura.
Creo que podría crear un nuevo vector, hacer un .reseve() con el tamaño y copiar los elementos, pero realmente no me gusta la operación de copia adicional.
PD: No me importa una solución portátil, siempre y cuando funcione para gcc.
Sólo una nota, de reserva() no necesariamente se reserva la cantidad exacta que se pasa a ella; reserva una cantidad mayor o igual que la cantidad que pasa a reservar(). – DeadHead
Tenga en cuenta que la expresión de intercambio realiza una copia. No sé si GCC tiene una extensión para liberar la memoria reservada no utilizada. En mi opinión, tal método debería estar en el estándar para vector <>. –
Considera usar una deque en lugar de vector. Es casi tan rápido como el vector, pero no guarda los datos en bloques contiguos y no necesita reserva() – Wacek