刪除vector中重複元素

2021-08-22 02:18:30 字數 1068 閱讀 8286

演算法unique能夠移除重複的元素。每當在[first, last]內遇到有重複的元素群,它便移除該元素群中第乙個以後的所有元素。

注意:unique只移除相鄰的重複元素,如果你想要移除所有(包括不相鄰的)重複元素,必須先將序列排序,使所有重複元素都相鄰。

unique會返回乙個迭代器指向新區間的尾端,新區間之內不包含相鄰的重複元素。

事實上unique並不改變元素個數,有一些殘餘資料會留下來,可以用erase函式去除。

#include 

#include

#include

#include

using

namespace

std;

int main(void)

; cout

<< "移除之前,res陣列中元素的個數:"

<< res.size() << endl;

sort(res.begin(), res.end());

vector

::iterator ite = unique(res.begin(), res.end());

cout

<< "使用unique之後,res陣列中元素的個數:"

<< res.size() << endl;

res.erase(ite, res.end());

cout

<< "使用erase之後,res陣列中元素的個數:"

<< res.size() << endl;

for(auto i : res)

cout

<< i << " ";

return

0;}

14行和16行**可以合併,之間寫成:res.erase(unique(res.begin(), res.end()), res.end())。

執行結果:

移除之前,res陣列中元素的個數:      8

使用unique之後,res陣列中元素的個數:8

使用erase之後,res陣列中元素的個數: 423

45

47 刪除vector中重複元素

1 首先將vector 排序。sort vecsrc.begin vecsrc.end 2 然後使用unique 演算法。vecsrc.erase unique vecsrc.begin vecsrc.end vecsrc.end unique 返回值是重複元素的開始位置。如果vector 中儲存的...

STL系列 5 vector 刪除重複元素

stl提供了很多實用的演算法,這裡主要講解sort和unique演算法。刪除重複元素,首先將vector排序。sort vecsrc.begin vecsrc.end 然後使用unique演算法。vecsrc.erase unique vecsrc.begin vecsrc.end vecsrc.e...

鍊錶刪除重複元素1,刪除重複元素2,

刪除排序鍊錶中的重複元素 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 思路 很簡單。先將兩個指標進行操作,start,end然後判斷end是否等於空即可 definition for s...