Angenommen, ich habe folgendes:equal_range auf einer Taste, unten/oben auf einem anderen gebunden im Boost-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"));
Das würde mir einen Iterator Bereich, in dem jeder Iterator auf eine Person hingewiesen namens ‚Bob‘ geboren auf "01/15/65".
Was ist, wenn ich einen Iteratorbereich haben möchte, der mir alle Personen im Container namens "Bob" aber zwischen '01/01/65 'und '01/31/65' gegeben hat? Dies ist effektiv ein equal_range auf 'Bob', aber eine untere und obere Grenze an Geburtstagen. Ist das möglich? Wenn ja bitte erklären wie?
Danke!