假设我有以下内容:
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"));
这将给我一个迭代器范围,其中每个迭代器都指向一个名为“Bob”的人,出生于 '01/15/65'。
如果我想要一个迭代器范围,它给我容器中名为“Bob”但出生在“01/01/65”和“01/31/65”之间的所有人怎么办?这实际上是 'Bob' 上的 equal_range,但生日时的下限和上限。这可能吗?如果是,请解释如何?
谢谢!