我正在尝试使用 boost-multi 索引做一个多映射(4 个变量)。我能知道如何获取特定索引的值吗?
tmp_Container.get<name>().find("aaa")->firstVariable
编辑
struct EnumStruct
{
int microsoftEnum;
std::string microsoftEnumString;
int localEnum;
std::string localEnumString;
}
typedef bmi::multi_index_container<
EnumStruct,
bmi::ordered_unique<bmi::tag<localEnum>,bmi::member <
EnumStruct,std::string,&EnumStruct::localEnumString > >
>
> boost_Enum_Container;
boost_Enum_Container enumStructContainer;
int main()
{
enumStructContainer.insert(EnumStruct(1,"MS_1",11,"LOC11"));
enumStructContainer.insert(EnumStruct(2,"MS_2",22,"LOC22"));
enumStructContainer.insert(EnumStruct(3,"MS_3",33,"LOC33"));
//enumStructContainer.get<0>().find(1);
//boost_Enum_Container::index<localEnum>::type&
localEnum_Index=enumStructContainer.get<localEnum>().find(22)->firstVariable;
boost_Enum_Container::iterator
return 0;
}
最佳答案
您需要 project
功能。参见 http://www.boost.org/doc/libs/1_39_0/libs/multi_index/doc/tutorial/basics.html#projection和 http://www.boost.org/doc/libs/1_46_0/libs/multi_index/doc/reference/multi_index_container.html#projection .因此:tmp_Container.project<0>(tmp_Container.get<name>.find("aaa"))
.
关于c++ - 如何从多索引中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230845/