Requirements on types
• InputIterator is a model of Input Iterator.
• OutputIterator is a model of Output Iterator.
• InputIterator's value type is convertible to a type in OutputIterator's set of value types.
• T is a model of Equality Comparable.
• Objects of type T can be compared for equality with objects of InputIterator's value type.