C++中sort,upper_bound,lower_bound,*max_element,unique用法介紹
阿新 • • 發佈:2019-02-11
1.sort:sort(fast,last,排序方式),sort排序函式是對[fast,last)前開後閉區間內元素進行排序,fast是陣列首地址,last是陣列尾地址的下一個地址。如sort(a,a+n,cmp),
如果不加排序方式則是預設由小到大排序。
2.*max_element:*max_element(fast,last)該函式也是對[fast,last)前閉後開區間內進行求陣列中最大值的操作。
3.unique:unique(fast,last)函式是對[fast ,last)區間內去除相鄰的重複元素,往往要先對陣列排序,在標頭檔案#include<algorithm>目錄下。且並不是把重複元素刪除了,而是把重複的元素排在陣列後面,返回值是去重後最後一個元素的尾地址,例如:
a[6]={1,2,2,3,3,5};那麼unique(a,a+6)-a的值就是4,而不是3,區別於本文其他的函式返回值。
4.upper_bound:upper_bound(fast,last,n)是[fast,last)區間用二分查詢找到第一個大於n的值,返回值為第一個大於n的值的地址,例如:upper_bound(a,a+n,k)-a的值的實際上就是第一個大於k的元素的下標,如果n大於陣列中的全部元素,則返回last。
5.lower_bound:lower_bound(fast,last,n)是[fast,last)區間二分查詢第一個大於等於n的值,返回值為第一個大於等於n的值的地址,其他同upper_bound函式。
如有錯誤希望大家能提醒一下,在下馬上改正。