Я портирую очень старый c-код на c ++ и наткнулся на связанный список, реализованный в массиве. Элемент представляет собой простую структуру:
struct element
{
void *m_ptrData;
short m_nextEntry;
short m_prevEntry;
};
Как массив, есть быстрый доступ к данным, если вы знаете индекс. Аспект связанного списка позволяет перемещать элементы и «удалять» их из списка. Элементы можно перемещать в списке в зависимости от частоты использования (вверх для MRU и вниз для LRU).
Мне нравится находить лучший способ реализовать это, чем использование другого массива. Я хотел бы использовать STL, но не уверен, какой контейнер лучше использовать.
У кого-нибудь есть какие-то мысли?