如何获取值了一个多指数 [英] How to get the value out of a multi index

查看:151
本文介绍了如何获取值了一个多指数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的助推多指数试着做一多地图(4个变量)。我能知道如何得到这样一个特定的指数值

  tmp_Container.get<名称>()找到(AAA) -  GT; firstVariable

修改

 结构EnumStruct
{
    INT microsoftEnum;
    标准::字符串microsoftEnumString;
    INT localEnum;
    标准::字符串localEnumString;
}BMI的typedef multi_index_container中:: LT&;
    EnumStruct,
    BMI :: ordered_unique< BMI ::标签<&localEnum GT;,BMI ::成员<
        EnumStruct,标准::字符串,&安培; EnumStruct :: localEnumString> >
    >
> boost_Enum_Container;boost_Enum_Container enumStructContainer;
诠释的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 ::指数&LT; localEnum&GT; ::类型和放大器;
    。localEnum_Index = enumStructContainer.get&LT; localEnum&GT;()找到(22) - GT; firstVariable;
    boost_Enum_Container:迭代
    返回0;
}


解决方案

您需要的项目功能。见的http://www.boost.org/doc/libs/1_39_0/libs/multi_index/doc/tutorial/basics.html#projection和<一个href=\"http://www.boost.org/doc/libs/1_46_0/libs/multi_index/doc/reference/multi_index_container.html#projection\" rel=\"nofollow\">http://www.boost.org/doc/libs/1_46_0/libs/multi_index/doc/reference/multi_index_container.html#projection.因此: tmp_Container.project℃的&GT;(tmp_Container.get&LT;名称&gt; .find(AAA))

I am trying to do one multi map(4 variables) using boost- multi index. Can I know how to get the value of a particular index like

tmp_Container.get<name>().find("aaa")->firstVariable

EDIT

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;
}

解决方案

You need the project function. See http://www.boost.org/doc/libs/1_39_0/libs/multi_index/doc/tutorial/basics.html#projection and http://www.boost.org/doc/libs/1_46_0/libs/multi_index/doc/reference/multi_index_container.html#projection. Thus: tmp_Container.project<0>(tmp_Container.get<name>.find("aaa")).

这篇关于如何获取值了一个多指数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆