C STL unique函式總結

2022-03-04 04:13:35 字數 998 閱讀 6961

標頭檔案:#include

作用:unique的作用是「去掉」容器中相鄰元素的重複元素。

解析:unique實質上是乙個偽去除,它並不是真正把重複的元素刪除,而是用不重複的元素把重複的元素覆蓋了,所以總長度其實是不變的。

(注意,網上有人說是把重複元素移動到末尾,其實並不是,因為如果只是移動的話每種元素的數量應該是不變的。)

用法:因為在去重之前要排序,所以一般與sort搭配。

intboard[maxn];

intn;

cin>>n;

for(int _=0 ; _>board[_];

sort(board,board+n);

int len = unique(board,board+n) - board;

如圖:

(這裡可以發現7和8都比開始輸入的多乙個。)

因為unique返回的是去重之後的尾位址所以可以通過減去開始位址來得到去重後的長度。

int len = unique(board,board+n) - board;
還可以搭配vector來刪除不要的資料。

intboard[maxn];

intn;

cin>>n;

for(int _=0 ; _>board[_];

sort(board,board+n);

vectorv (board, board +n);

vector::iterator it =unique (v.begin(), v.end() );

v.erase (it, v.end() );//這裡就是把後面藏起來的重複元素刪除了

另外如果是對結構體去重需要過載「==」。

C STL unique去重函式

現有乙個陣列 因為unique函式針對相鄰的重複元素進行操作,因此需要有序 a 10 unique 有兩個引數,需要去重的陣列的首尾位址,例如上面的a陣列去重,只需unique a,a 10 即可。but,unique不是真正意義上的去重,例如上面給出的陣列,經過unique函式之後,會變成 1 3...

fork 函式函式總結

學習作業系統程序時遇到用fork建立子程序,一下所寫均是個人結合網上一些資料和個人思考所得,歡迎拍磚!程序建立的原因 導致程序建立的一般有事件有 1新的批處理作業 2互動登陸 終端使用者登陸到系統 3作業系統因為提供一項服務而建立 4由現有的程序派生。注 作業系統為另乙個程序的顯示請求建立乙個程序時...

hive函式總結 日期函式

獲取當前unix時間戳函式 unix timestamp語法 unix timestamp 返回值 bigint 說明 獲得當前時區的unix時間戳 舉例 hive select unix timestamp from dual ok1455616811 time taken 0.785 secon...