0
빠른 검색을 위해 부스트의 다중 색인 컨테이너를 사용하려고하는데, 찾기가 힘듭니다. 약간의 설명서가 다소 혼란 스럽습니다.부스트 다중 인덱스
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 보고서를 검색하려고하면 :
Rname_view::iterator it = fdv.find("report");
std::cout << it->report_name_;
나는이 권리를하고 오전 여기에 내가 가진 무엇인가? 그 유형의 모든 보고서를 얻으려면 루프가 필요합니까? 또는 나는 이것을 완전히 오용하고 있는가?
덕분에
당신의 정의는 괜찮아 보입니다. 그 두 개의 segfault에서 어느 라인을 찾으십니까? 우리가 그것을 실행할 수 있고 그것이 무엇을하는지 볼 수 있도록 실행중인 완전한 코드를 게시하십시오. –
감사합니다. 이후이 아이디어를 삭제했습니다. 그것이 지속되는 동안 멋졌다. –
반복자를 확인하십시오 ... if (fdv.end()! = it)'.... – sehe