Предположим, у меня есть следующее:
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'? Это фактически равный диапазон для «Боба», но нижняя и верхняя граница для дней рождения. Это возможно? Если да, объясните, пожалуйста, как?
Спасибо!