Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost.MultiIndex. Using several keys together.
From: syvyi (alexander.svk_at_[hidden])
Date: 2014-02-04 16:35:04


What if the composite key should be parameterized from a file?

In the case of
<raw>

struct phonebook_entry{
  std::string family_name;
  std::string given_name;
  std::string phone_number;

  phonebook_entry(
    std::string family_name,
    std::string given_name,
    std::string phone_number):
    family_name(family_name),given_name(given_name),phone_number(phone_number)
  {}};
// define a multi_index_container with a composite key on
// (family_name,given_name)typedef multi_index_container<
  phonebook_entry,
  indexed_by<
    //non-unique as some subscribers might have more than one number
    ordered_non_unique<
      composite_key<
        phonebook_entry,
        member<phonebook_entry,std::string,&phonebook_entry::family_name>,
        member<phonebook_entry,std::string,&phonebook_entry::given_name>
>
>,
    ordered_unique< // unique as numbers belong to only one subscriber
      member<phonebook_entry,std::string,&phonebook_entry::phone_number>
>
>> phonebook;

</raw>

the lines

        member<phonebook_entry,std::string,&phonebook_entry::family_name>,
        member<phonebook_entry,std::string,&phonebook_entry::given_name>

should be auto-generated by reading a composite key from a file.

2014-02-04 Jason [via Boost] <ml-node+s2283326n4658955h57_at_[hidden]>:

>
> On 02/04/2014 03:36 PM, syvyi wrote:
>
> > Hello,
> >
> > there's a structure
> > struct person
> > {
> > std::string name;
> > std::string surname;
> > int birth_year;
> > std::string craft;
> > };
> >
> > How to create such a multiindex container that dumping could performed
> using
> > an index as name, surname and year triple alltogether?
> Sounds like you might be interested in MultiIndex's composite key feature:
>
>
> http://www.boost.org/doc/libs/1_55_0/libs/multi_index/doc/tutorial/key_extraction.html#composite_keys
>
> Jason
> _______________________________________________
> Boost-users mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=4658955&i=0>
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://boost.2283326.n4.nabble.com/Boost-MultiIndex-Using-several-keys-together-tp4658953p4658955.html
> To unsubscribe from Boost.MultiIndex. Using several keys together., click
> here<http://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4658953&code=YWxleGFuZGVyLnN2a0BnbWFpbC5jb218NDY1ODk1M3wxMzU1MTY0OTM5>
> .
> NAML<http://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>

--
View this message in context: http://boost.2283326.n4.nabble.com/Boost-MultiIndex-Using-several-keys-together-tp4658953p4658958.html
Sent from the Boost - Users mailing list archive at Nabble.com.


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