Bidirectional iterators to the initial and final positions of the sequence to partition. The range used is 
[first,last), which contains all the elements between 
first and 
last1, including the element pointed by 
first but not the element pointed by 
last.
 
Forward iterators to the initial and final positions of the sequence to partition. The range used is 
[first,last), which contains all the elements between 
first and 
last, including the element pointed by 
first but not the element pointed by 
last.
ForwardIterator shall point to a type for which 
swap is defined and swaps the value of its arguments.