• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    如何使用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
    • 閱讀 ( 855 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    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 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆