陣列去重unique

2021-08-17 13:30:13 字數 438 閱讀 3262

昨天晚上筆試,第一題,涉及到陣列去重,寫了好幾種方法,都沒有ac ,今天突然看到大佬用的函式unique,才明白原來c++有自帶的去重函式。

現在總結一下unique,unique的作用是「去掉」容器中相鄰元素的重複元素(不一定要求陣列有序),它會把重複的元素新增到容器末尾(所以陣列大小並沒有改變),而返回值是去重之後的尾位址,下面舉個例子。

由於返回的是容器末尾,所以如果想得到去重後的size,需要減去初始位址,lower_bound是得到位址,稍微不同。

sz = unique(b + 1,b + n + 1)-(b + 1);

sz = unique(a,a + n) - a;

對比一下lower_bound:

pos=lower_bound(b + 1,b + sz + 1,a[i]) - b;

unique 去重函式

unique 函式是乙個去重函式,stl中unique的函式 unique的功能是去除相鄰的重複元素 只保留乙個 還有乙個容易忽視的特性是它並不真正把重複的元素刪除。他是c 中的函式,所以標頭檔案要加 include,具體用法如下 int num 100 unique num,mun n 返回的是n...

unique 去重函式

unique 是c 標準庫函式裡面的函式,位於標頭檔案 include中,其功能是去除相鄰的重複元素 只保留乙個 所以使用前需要對陣列進行排序 該函式的乙個使用方法,對於長度為n陣列arr,unique arr,arr n arr返回的是去重後的陣列長度 那它是怎麼實現去重的呢?刪除?不是,它並沒有...

unique 去重函式

unique 去重函式 unique 函式是乙個去重函式,stl中unique的函式 unique的功能是去除相鄰的重複元素 只保留乙個 還有乙個容易忽視的特性是它並不真正把重複的元素刪除。他是c 中的函式,所以標頭檔案要加 include,具體用法如下 int num 100 unique num...