------------------ 原始邮件 ------------------
发送时间: 2010年7月26日(星期一) 凌晨2:49
收件人: "boost-users"<boost-users@lists.boost.org>;
主题: Re: [Boost-users] Multi_indexcomposite_key
isjk <isjk <at> foxmail.com> writes:
> Oh, sorry.
Nothing to be sorry about. On another topic, please
don't top-post and try to follow the discussion policies
of the list as summarized at
http://www.boost.org/community/policy.html
> Assume "cadillac" have "A4" model, "bmw" have "A4" model too.
> now, if I will querying "A4" 's price, I must kown the manufacturer.
>
> ordered_no_unique<
> tag<model>,BOOST_MULTI_INDEX_MEMBER(car_model,std::string,model),
Correct, you must change from the example's original
ordered_unique to ordered_no_unique so as to allow cars
with from different manufacturers yet the same model
name.
> ct.insert(car_model("A4",cadillac,78901));
> ct.insert(car_model("A4",bmw,65412));
>
> index_iterator<car_table,model>::type im0,im1;
> boost::tuples::tie(im0,im1)=get<model>(ct).equal_range(model);
>
> car_table_manufacturer_view ctmv;
> copy(im0,im1,back_inserter(ctmv));
> car_table_manufacturer_view::iterator ictmv = ctmv.find(cm);
This looks right (haven't compiled it), although a little
contrived: unless you expect to have *many* cars
with the same model name, you can just traverse [im0,im1)
and locate the car you're after.
> ctmv.modify(cctmv, _Modify_price(10000)); // right or wrong???
I don't know how you've defined _Modify_price.
Care to show?
Joaquín M López Muoz
Telefónica, Investigación y Desarrollo
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users