unique()函数

这篇博客是本人在学习算法中遇到的一个常用的函数,记录分享给大家

注意 :unique()函数是删除相邻的重复元素,并且返回的是去重范围后的第一个元素的地址,左闭右开

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
  vector<int> v={5,2,7,4,1,2,4,5,1};
  sort(v.begin(),v.end());
  
  auto pos=unique(v.begin(),v.end());
  v.erase(pos,v.end());
  for(auto e : v)
  {
    cout<<e<<" ";
  }
  
  
  int a[10]={1,3,2,4,6,2,1,1,5,2};
  sort(a,a+10);
  int n=unique(a,a+10)-a;//返回的是地址,所以要减去首元素的地址,得到n
  //注意nuique的返回的是删除完的数组,
  //的最后一个元素的下一个位置的地址
 
  for(int i=0;i<n;i++)
  {
    cout<<a[i]<<" ";
  }

  return 0;
}
相关推荐
样例过了就是过了1 分钟前
LeetCode热题100 数组中的第K个最大元素
数据结构·c++·算法·leetcode·排序算法
lifewange1 分钟前
Ruby语言在测试领域的应用
开发语言·后端·ruby
17(无规则自律)3 分钟前
【算法对比】连续子区间的两种控制逻辑:Kadane和滑动窗口
数据结构·c++·算法·动态规划
chushiyunen4 分钟前
python实现分离不同人声、wespeaker
开发语言·python
y = xⁿ5 分钟前
【LeetCodehot100】:贪心算法:T121:买卖股票最佳时机 T55:跳跃游戏 T45:跳跃游戏2
算法·游戏·贪心算法
想不明白的过度思考者6 分钟前
SpringAOP:Java 三大代理模式:从静态代理到 JDK & CGLIB 动态代理
java·开发语言·代理模式
人道领域7 分钟前
【LeetCode刷题日记】:设计链表全解析
算法·leetcode·链表
AI自动化工坊9 分钟前
Claw Code技术深度解析:Python+Rust混合架构的设计与实现
开发语言·人工智能·python·ai·架构·rust·开源
妙蛙种子31110 分钟前
【Java设计模式 | 创建者模式】单例模式
java·开发语言·后端·单例模式·设计模式
一叶之秋141212 分钟前
类型驱动:解锁Qt模板的渲染潜能
开发语言·qt