我正在尝试使用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;
}
你能不能请,更具体?至少给我们一下容器的定义。 – vissi 2011-03-08 10:01:57
@vissi查看编辑 – prabhakaran 2011-03-08 10:08:23
你的代码给了我一堆编译错误。主要原因是bmi :: multi_index_container的第二个模板参数需要一个bmi :: indexed_by。 (至少对于我有的Boost版本;我不保证这在某些时候没有改变。) – 2011-03-08 15:25:44