The iterator adaptor Filter_iterator<Iterator, Predicate> acts as a
filter on a given range. Whenever the iterator is in- or
decremented, it ignores all iterators for which the given
Predicate is true. The iterator category is the same as for
Iterator.
creates an iterator which filters values according to p.
Initializes by taking the first valid iterator (according to p),
starting at c, and stopping at e if none is found.