Requirements on types
• InputIterator1 is a model of Input Iterator.
• InputIterator2 is a model of Input Iterator.
• InputIterator1's value type is a model of LessThan Comparable.
• InputIterator2's value type is a model of LessThan Comparable.
• If v1 is an object of InputIterator1's value type and v2 is an object of InputIterator2's value type, then both v1 < v2 and v2 < v1 are defined.
• Operator< is a strict weak ordering, as defined in the LessThan Comparable requirements.