Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: xaps en 19 Noviembre 2013, 02:15 am



Título: C++ - Duda sobre el consumo de memoria de listas enlazadas y structs.
Publicado por: xaps en 19 Noviembre 2013, 02:15 am
Considerando las siguientes implementaciones:

Código
  1. vector< list<Objeto> > list_1(N);
  2. vector< list<Revistes>::iterator > list_2(N);
  3.  

Código
  1. struct Conj {
  2.  Objeto obj;
  3.  list<Objeto>::iterator it; //puntero a un objeto contenido en una lista del tipo especificado
  4. }
  5.  
  6. vector< list<Conj> > list_rev(N);
  7.  

¿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