首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

复杂性

容器的大小成线性。

二次

代码语言:javascript
复制
#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;
}

二次

产出:

二次

代码语言:javascript
复制
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)

代码语言:txt
复制
 ? cppreference.com

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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com