1. 程式人生 > 其它 >C++ sort()函式

C++ sort()函式

sort()函式是定義在C++ STL 標準庫中的一個模板函式 ,它的作業是對容器或普通陣列中指定範圍內的元素進行排序,排序規則預設以元素值的大小做升序排序,除此之外我們也可以選擇標準庫提供的其它排序規則(比如std::greater<T>降序排序規則)。最重要的是我們可以使用函式的形式自定義排序規則,呼叫時只需要把我們自定義的排序函式作為引數傳入即可。

要使用sort(),我們需要包含標頭檔案<algorithm>。

#include <algorithm>

sort()本身的實現是基於快速排序,但並不是單純的快速排序。比如給一個數據量較大的陣列排序,開始採用快速排序,分段遞迴,分段之後每一段的資料量達到一個較小值後它就不繼續往下遞迴,而是選擇插入排序,如果遞迴的太深,他會選擇推排序。具體實現原始碼看著頭疼,就不管了,總之效能還是很好的。

需要注意的是,sort()函式要求引數容器的迭代器型別為RandomAccessIterator,即隨機訪問迭代器。這就意味著sort()函式目前只對陣列(array)、向量(vector)、佇列生效(deque)。

另外