Is there any STL algorithm that would tell if a container has duplicated elements (using the operator==
or a given predicate)?
Let's consider those two vectors:
std::vector<int> v1{ 1, 2, 3 };
std::vector<int> v2{ 1, 2, 1 };
I would expect a function like that:
std::is_exclusive( v1.begin(), v1.end() ); // returning true
std::is_exclusive( v2.begin(), v2.end() ); // returning false
Is there such a simple function? I could not find any (found std::unique
, but this modifies the vector...)
Note: I'm not asking how to "check if a container has duplicates", I know how I can do that (basically, I can do ( std::set<int>( v1.begin(), v1.end() ).size() == v1.size() )
and there may exist many other options. I'm asking if there is a STL algorithm function that would do it in a smarter way because I'm surprised I could not find any...