
there are one hundred million defferent manufacturer, all have "A4", "A8", "A12", "A16"... model car.
manufacturer and model is many-to-many relationship.
Particularly large data.
struct _Modify_price
{
_Modify_price(int price_):m_price_(price_){}
void operator()(car_model& cm_)
{
cm_.price = m_price_;
}
private:
int m_price_;
};
------------------ 原始邮件 ------------------
发件人: "Joaquin M Lopez Munoz"
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
::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