Crear vector sin saber tamaño

azvez
30 de Junio del 2006
Pues eso...
¿Como se podria hacer un vector para almacenar datos que le van entrando uno a uno desde cin (no sabes cuantos van a entrar ni puedes reservar un determinado tamaño de memoria para tu vector)?
Gracias y un saludo.

hiei
30 de Junio del 2006
Ese problema es mas biejo que el andar a pie y ademas cada libreria tiene una solucion mas o menos eficiente pero ninguna definitiva...

Lo mas simple seria hacer un "ptr = realloc( ptr, ++size );" empezando size en 0 al principio... esto tiene sus inconvenientes... pero supongo que lo usaras en Linux que tiene un buen manejo de memoria y no en guindos que te deja agujeros por todos lados... bue... igual anda...

Despues tienes muchas otras soluciones como el de reservar chuncks (bloquecitos) de tamaño fijo y cuando se te llena el chunk lo agrandas con realloc a size+algo donde algo seria un numero distinto de uno (digamos 20 o 30) asi no pides byte por byte la memoria... y tu manejas el resto... requiere mucha programacion y en C es propenso a errores porque manejas bloquecitos de memoria y tienes que administrarla tu para que sea transparente al programa...