如何使用C++的unique

unique 是 C++自带的一个函数,可以或许帮我们实现部门去重功能,共同适当可以完全去重

那么我们该若何利用它呢?

东西/原料

  • 电脑
  • C++编译器

unique部门去重

  1. 1

    unique,翻译当作中文是“并世无双的”

    这和它所实现的功能十分相似:去重,让每个元素变得“并世无双”

    可是它有一个错误谬误,只能删除相邻的不异元素(只保留一个)

    该图片来自于收集

  2. 2

    若何利用 unique 函数?

    unique (首迭代器(或指针),从头至尾迭代器(或指针));

    注重点:unique 时的区间是左闭右开的,即 [首指针,从头至尾指针),取不到从头至尾指针

    如图,"a","a+10" 都是指针

    unique(a,a+10) 为将 [a,a+10) 的相邻且不异元素删除(只保留一个)

  3. 3

    若是待去重的是一个STL容器(例如vector)

    刚好 vector 也是左闭右开的,所以我们可以这么写:

    unique(v.begin(),v.end());

    如图,"v.begin()","v.end()" 都是迭代器

  4. 4

    可是,我们并不是每次都能知道去重后的元素个数,这个在进行其它操作时会不太便利

    不消担忧,unique会主动返归去重后的从头至尾迭代器(仍为左闭右开),共同指针(或迭代器)解法即可求出去重后的元素个数

unique完全去重

  1. 1

    既然 unique 只能删除相邻两个不异的元素,那有没有什么法子将这个区间完全去重呢?

    有,但要牺牲必然的时候

  2. 2

    我们可以先把这个区间排序一下,凡是是直接用 sort,时候快又便利

    然后再用 unique,就可以完全去重了,因为从小到大排序,不异的数必然是持续的

    0若何利用的和

注重事项

  • 若是这篇经验帮到了您,就请投票+保藏吧,感谢!
  • 发表于 2019-07-20 23:46
  • 阅读 ( 867 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具