C++ - Duda sobre el consumo de memoria de listas enlazadas y structs.

Iniciado por xaps, 19 Noviembre 2013, 02:15 AM

0 Miembros y 1 Visitante están viendo este tema.

xaps

Considerando las siguientes implementaciones:

Código (cpp) [Seleccionar]

vector< list<Objeto> > list_1(N);
vector< list<Revistes>::iterator > list_2(N);


Código (cpp) [Seleccionar]

struct Conj {
 Objeto obj;
 list<Objeto>::iterator it; //puntero a un objeto contenido en una lista del tipo especificado
}
 
vector< list<Conj> > list_rev(N);


¿Cual creeis que consume menos memoria? Ya que a simple vista guarda los mismos datos, pero lo que me hace dudar es la información de más que puede generar un struct, un vector o una lista enlazada para funcionar correctamente, ya que estas últimas por ejemplo, por cada posición de la lista se guardan dos punteros para referenciar al elemento anterior y al siguiente.

Saludos




Solucionado: La segunda opción consume menos memoria que la primera, ya que por cada lista de más que generemos, aumentamos los punteros totales que utiliza el programa. En canvio, un struct guarda los datos en bloques y no necesita de datos adicionales para funcionar, por lo tanto nos ahorramos los punteros de una lista.

Saludos
"The programmers of tomorrow are the wizards of the future" - Gave Newel