Как я могу преобразовать std :: map с несколькими индексами в boost :: multi_index_container

Мне нужно руководство, чтобы получить следующее живой пример что я собрал на Coliru работать, чтобы использовать boost::multi_index_container, Живой пример имеет 2 раздела, простой слегка измененный пример boost::multi_index_container По крайней мере, показывая, что я могу получить живой пример Boost, работающий на колиру — он также имеет очень упрощенную пару указанных индексов. Во-вторых, у меня есть класс, который я пытаюсь адаптировать, чтобы использовать multi_index_container, IndexContainer по существу, в его ядре содержится std::map из std::maps для следующих typedefs в классе

typedef enum  { INSYNC, UPDATE, LOAD, EXTRA } FileType;
// 4 separate types of indeces defined
typedef std::tuple<int32_t, int32_t, int32_t, int32_t> IndexQuartet;

// typedef showing relationship between IndexQuartet & its LoadableFiles
typedef std::map<IndexQuartet, std::set<LoadableFile>> IndexedFileInfo;

// define a mapping between the file type and its indexed files
typedef std::map<FileType, IndexedFileInfo> FileInfo;

IndexContainer класс имеет updateFileInfo а также getFileInfo методы для изменения основного FileInfo карта карт контейнеров. Интересная структура IndexQuartet содержит 4 отдельных индекса, и я хотел бы иметь возможность независимо перебирать LoadableFileс использованием одного из 4 индексов, указанных в вышеупомянутом IndexQuartet но я не совсем уверен, как идти об изменении простого std::set на основе сотрудника, как пример, показанный в начале, чтобы сделать что-то на основе комбинации std::mapс и кортежи.

Любая помощь или руководство относительно того, как я могу это сделать, будет высоко ценится.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]