2012-03-28 2 views
2

가정하자 나는이 다음equal_range, 위/부스트 multi_index_container의 composite_key에서 서로 결합 낮은

struct Person 
{ 
    std::string mName; 
    Birthday mBirthday; 
}; 

using namespace boost::mult_index; 
typedef multi_index_container< 
    Person, 
    ordered_non_unique< 
     composite_key< 
      Person, 
      member<Person, std::string, &Person::mName>, 
      member<Person, Birthday, &Person::mBirthday> 
     > // composite_key 
    > // ordered_non-unique 
> PersonContainer; // mult_index_container 

PersonContainer personContainer; 

... 

std::pair<PersonContainer::iterator, PersonContainer::iterator> similarPeople 
    = personContainer.equal_range(boost::make_tuple("Bob","01/15/65")); 

이 나에게 각 반복자라는 이름의 사람 '밥'출생 지적 반복자의 범위를 줄 것이다 '01/15/65 '에

'Bob'이라는 컨테이너에있는 모든 사람에게 내게 준 의 이터레이터 범위를과 '01/01/65 '와 '01/31/65'사이에 지정하려면 어떻게해야합니까? 이것은 사실 'Bob'의 equal_range이지만 생일의 하한선과 상한선입니다. 이것이 가능한가? 그렇다면 어떻게 설명하십시오?

감사합니다.

답변

3

원하는 범위는 [lower_bound(make_tuple("Bob","01/01/65")), upper_bound(make_tuple("Bob","01/31/65"))입니다.