Предположим, у меня есть следующее:
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"));
Это дало бы мне диапазон итераторов, где каждый итератор указывал на человека по имени «Боб», родившегося «15.01.65».
Что, если я хочу, чтобы диапазон итераторов дал мне всех людей в контейнере с именем «Боб», но родившихся между «01/01/65» и «01/31/65»? По сути, это equal_range для «Боба», но нижняя и верхняя граница для дней рождения. Это возможно? Если да, то объясните как?
Спасибо!