Boost logo

Boost Users :

Subject: Re: [Boost-users] How to use multi index container?
From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2013-10-18 08:09:41


yuan <yuanzhan <at> qq.com> writes:

>
> Hi,
> I try to use multi index container.I have one problem.
> Please help me.Thanks
> struct TOrder
> {
> char szDate[9]; //date type
>  int nID; // order id
> int nProductID; //product id
> double fPrice;//
> int nVol;//
> //other member
> …
> }
>
> The unique key of TOrder struct is szDdate and nID.
> How I can typedef the composite_key and the
> multi_index_container?

Assuming that comparison of szDate's is lexicographical, you can
write something like this:

struct DateCompare
{
  bool operator()(const char* x,const char* y)const
  {
    return std::strcmp(x,y)<0;
  }
};

typedef multi_index_container<
  TOrder,
  indexed_by<
    ordered_unique<
      composite_key<
        TOrder,
        member<TOrder,char[9],&TOrder::szDate>,
        member<TOrder,int,&TOrder::nID>
>,
      composite_key_compare<
        DateCompare,
        std::less<int>
>
>
>
> TOrderContainer;

All of this should be explained in the tutorial. Which particular
difficulties got you stuck? Thank you,

Joaquín M López Muñoz
Telefónica Digital


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net