如何将带有多个索引的std :: map转换为boost :: multi_index_container

时间:2014-08-05 16:08:03

标签: c++ boost random-access boost-multi-index

我需要一些指导,以便在Coliru上使用boost::multi_index_container时将一些live example放在一起。实例有两个部分,一个简单的略微修改的boost::multi_index_container示例,至少表明我可以在Coliru上获得一个Boost实例 - 它还有一对非常简单的索引指定。其次,我有课程,我试图适应使用multi_index_container。根据类中的以下typedef,IndexContainer本质上包含std::mapstd::map

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类有updateFileInfogetFileInfo方法来修改地图容器的基础FileInfo地图。有趣的结构IndexQuartet包含4个单独的索引,我希望能够使用上述LoadableFile中指定的4个索引之一独立迭代IndexQuartet但我不是真的确定如何更改基于简单std::set的员工,例如在开始时显示的示例,根据std::map和元组的组合执行某些操作。

我将非常感谢您对我如何做到这一点的任何帮助或指导。

0 个答案:

没有答案