BOOST Multi-Index
Я пытаюсь использовать многоиндексный контейнер 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 ответ
Решение
Я думаю, что вы используете индекс, отсортированный по имени отчета, чтобы найти название категории.