私が次のものを持っているとしましょう:
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」という名前の人物を指すイテレータ範囲が得られます。
「Bob」という名前のコンテナ内のすべての人に「 01/01/65」と「01/31/65」の間に生まれたイテレータ範囲が必要な場合はどうなりますか?これは事実上「ボブ」ではequal_rangeですが、誕生日では下限と上限です。これは可能ですか?もしそうなら、どのように説明してください?
ありがとう!