OutputIterator InputIterator InputIterator OutputIterator Predicate command_queue & An iterator pointing to the end of the result range. Copies each element in the range [first, last) for which predicate returns true to the range beginning at result.