Estoy portando un código c muy antiguo en C++ y me he encontrado con una lista vinculada implementada dentro de una matriz. El elemento es una estructura simple:¿Pensamientos sobre cómo implementar?
struct element
{
void *m_ptrData;
short m_nextEntry;
short m_prevEntry;
};
Como matriz, hay acceso rápido a los datos, si conoce el índice. El aspecto de la lista enlazada permite mover los elementos y "eliminarlos" de la lista. Los elementos se pueden mover en la lista, según la frecuencia de uso (hasta MRU y abajo por LRU).
Me gusta encontrar una forma mejor de implementar esto que usar otra matriz. Me gustaría utilizar STL, pero no estoy seguro de qué contenedor es el mejor para usar.
¿Alguien tiene alguna idea?
¿Es crucial la velocidad de acceso aleatorio? Quiero decir, ¿ocurre * mucho *, en lugar de iterar? – Guy
Depende completamente de cómo lo use el resto del código. ¿Es el acceso directo una forma común de acceder a los elementos, o se realiza principalmente al recorrer la lista? ¿Se accede a algunos elementos con más frecuencia que otros? – suszterpatt
Una vez leí un artículo que afirmaba (y defendía) la afirmación de que 'std :: vector' casi siempre es una mejor opción que' std :: list', incluso si agrega/quita elementos del medio del contenedor . No puedo encontrar el artículo ahora, así que lo agregué como comentario en lugar de como respuesta. Agradecería que alguien más consciente del artículo pudiera publicar un enlace. –