2010-03-15 5 views
4

data1data2이라고 가정합니다. std::set_intersect()과 어떻게 교차합니까?Boost.MultiIndex : 효과적인 교차로 설정 방법?

struct pID 
{ 
    int   ID; 
    unsigned int IDf;// postition in the file 
    pID(int id,const unsigned int idf):ID(id),IDf(idf){} 
    bool operator<(const pID& p)const { return ID<p.ID;} 
}; 

struct ID{}; 
struct IDf{}; 

typedef multi_index_container< 
    pID, 
    indexed_by< 
    ordered_unique< 
    tag<IDf>, BOOST_MULTI_INDEX_MEMBER(pID,unsigned int,IDf)>, 
    ordered_non_unique< 
    tag<ID>,BOOST_MULTI_INDEX_MEMBER(pID,int,ID)> > 
    > pID_set; 

ID_set data1, data2; 
Load(data1); Load(data2); 

pID_set::index<ID>::type& L1_ID_index=L1.data.get<ID>(); 
pID_set::index<ID>::type& L2_ID_index=L2.data.get<ID>(); 
    // How do I use set_intersect? 

답변

5
std::set_intersection(
    L1_ID_index.begin(),L1_ID_index.end(), 
    L2_ID_index.begin(),L2_ID_index.end(), 
    output_iterator, 
    L1_ID_index.value_comp()); 
+0

감사합니다,이 "L1_ID_index.value_comp는()"내가이 누락되었습니다. – Arman

+0

나는 그가 도서관을 쓴 이후로 알아야한다고 생각해! – shaz

관련 문제