演算法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...