std::list::unique
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 |
---|
返回值
%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。