The comparison between elements is performed by either applying the == comparison operator, or the template parameter comp (for the second version) between them.
The behavior of this function template is equivalent to:
| 1 2 3 4 5 6 7 8 9 10 11 |
|
Notice that this function does not alter the elements past the new end, which keep their old values and are still accessible.
Parameters
- first, last
- Forward iterators to the initial and final positions of the sequence. 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.
- pred
- Binary predicate taking two elements as argument and returning the result of the comparison between them, with true (non-zero) meaning that they are to be considered equal, and false (zero) for not-equal. This can either be a pointer to a function or an object whose class overloads operator().
Return value
A forward iterator pointing to the new end of the sequence, which now does not include the elements that were consecutive duplicates.Example
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
Output:
myvector contains: 10 20 30 20 10 |
Complexity
At most, performs as many assignments and comparisons or applications of pred as the number of elements in the range [first,last).See also
| unique_copy | Copy range removing duplicates (function template) |
| adjacent_find | Find equal adjacent elements in range (function template) |
| remove | Remove value from range (function template) |
| remove_if | Remove elements from range (function template) |
