std::forward_list<T,Allocator>::unique
| (1) | ||
void unique(); | (since C++11) (until C++20) | |
size_type unique(); | (since C++20) | |
| (2) | ||
template< class BinaryPredicate > void unique( BinaryPredicate p ); | (since C++11) (until C++20) | |
template< class BinaryPredicate > size_type unique( BinaryPredicate p ); | (since C++20) |
Removes all consecutive duplicate elements from the container. Only the first element in each group of equal elements is left. The first version uses operator== to compare the elements, the second version uses the given binary predicate p.
Parameters
| p | - | binary predicate which returns true if the elements should be treated as equal. The signature of the predicate function should be equivalent to the following:
While the signature does not need to have |
Return value
| (none). | (until C++20) |
| The number of elements removed. | (since C++20) |
Complexity
Linear in the size of the container.
Example
#include <iostream>
#include <forward_list>
int main()
{
std::forward_list<int> x = {1, 2, 2, 3, 3, 2, 1, 1, 2};
std::cout << "contents before:";
for (auto val : x)
std::cout << ' ' << val;
std::cout << '\n';
x.unique();
std::cout << "contents after unique():";
for (auto val : x)
std::cout << ' ' << val;
std::cout << '\n';
return 0;
}Output:
contents before: 1 2 2 3 3 2 1 1 2 contents after unique(): 1 2 3 2 1 2
See also
| removes consecutive duplicate elements in a range (function template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/container/forward_list/unique