|
Boost : |
From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2001-11-27 07:24:25
>>So I guess we converge to the scheme were the Base is the actual random
>>iterator and which is the second argument to the
>>make_permutation_iterator such that the past-the-end can be specified by
>>means of the first argument
>>
>
> I don't see why the argument order to the generator(s) is important, but
> yes, I always thought that past-the-end should be determined by a position
> in the sequence of permutation indices.
If the order is the first argument you can easily specify the
past-the-end iterator like :
permutation_type end = make_permutation_iterator< sequence::iterator,
sequence::iterator >( order.end() );
OK, the notation is not optimal ;-). The idea is just that ultimatly the
user would only need to create a past-the-end permutation iterator with
one argument, the past-the-end of the order. This is simpler for the
user and less confusing, since otherwise the user needs to construct the
past-the-end from two iterator of which one is actually not used (and
thus what value should it have ideally ?)
>
> FWIW, still think "permutation iterator" is still a better name for this
> beast, even though it can be used to do other kinds of shuffled traversals.
I agree. It should be stated clearly though that the
permutation_iterator is not limited to bijections (every element in the
original list maps to _exactly_ _one_ in the resulting permutation).
toon
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk