std::list::unique
void unique(); | (1) | ? |
---|---|---|
template< class BinaryPredicate > void unique( BinaryPredicate p ); | (2) | ? |
移除连续来自容器的重复元素。只留下每组相等元素中的第一个元素。第一个版本使用operator==
为了比较这些元素,第二个版本使用给定的二进制谓词。p
...
参数
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: bool pred(const Type1 &a, const Type2 &b); The signature does not need to have const &, but the function must not modify the objects passed to it. The types Type1 and Type2 must be such that an object of type list<T,Allocator>::const_iterator can be dereferenced and then implicitly converted to both of them. ? |
---|
返回值
%280%29
复杂性
容器的大小成线性。
例
二次
#include <iostream>
#include <list>
int main()
{
std::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;
}
二次
产出:
二次
contents before: 1 2 2 3 3 2 1 1 2
contents after unique(): 1 2 3 2 1 2
二次
另见
unique | removes consecutive duplicate elements in a range (function template) |
---|
? cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com