BOOST Multi-Index - PullRequest
       29

BOOST Multi-Index

0 голосов
/ 15 ноября 2011

Я пытаюсь использовать многоиндексный контейнер Boost для быстрого поиска, но мне трудно найти.Я нахожу некоторые документы немного запутанными.Вот что у меня есть:

struct reports_entry
{
  reports_entry(  const std::string& category,
               const std::string& reportName):
               cat_name_(category),
               report_name_(reportName)
  {}
  std::string cat_name_;
  std::string report_name_;
};

typedef multi_index_container<
 reports_entry, indexed_by<
   ordered_non_unique<member<reports_entry, std::string
    , &reports_entry::cat_name_> >
    , ordered_unique<member<reports_entry, std::string
   , &reports_entry::report_name_> >
  >
 > reports_set;

fnv.insert(reports_entry("report", "somekindofreport1.dat"));
fnv.insert(reports_entry("report", "somekindofreport3.dat"));
fnv.insert(reports_entry("report", "somekindofreport2.dat"));
fnv.insert(reports_entry("mysecondreport", "somekindofreport4.dat"));
fnv.insert(reports_entry("mysecondreport", "somekindofreport5.dat"));

Итак, теперь, если я пытаюсь найти все отчеты о тупых отчетах, я вижу ошибку:

Rname_view::iterator it = fdv.find("report");
std::cout << it->report_name_;

Я правильно делаю?Нужен ли цикл для получения всех отчетов такого типа?Или я полностью этим злоупотребляю?

Спасибо

1 Ответ

1 голос
/ 16 ноября 2011

Я думаю, что вы используете индекс, отсортированный по имени отчета, для поиска имени категории.

...