在线文档教程
C++
容器 | Containers

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::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

二次

另见

uniqueremoves consecutive duplicate elements in a range (function template)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/container/list/UNIQUE