提高多索引

BOOST Multi-Index

本文关键字:索引 高多      更新时间:2023-10-16

我试图使用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"));

那么现在如果我尝试搜索所有dumbmreport报告,我会设置fault:

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

我这样做对吗?我是否需要一个循环来获取该类型的所有报告?还是我完全滥用了?

谢谢

我认为您正在使用按报告名称排序的索引来查找类别名称。