C std sort 函式使用總結

2022-07-29 10:30:16 字數 1238 閱讀 5565

template< class randomit, class compare >

constexpr void sort( randomit first, randomit last, compare comp );

以一定排序規則排序指定範圍內的元素,但是演算法不具有穩定性,如果元素的值是相同的話不保證它們的相對順序保持不變。

first , last -要排序的元素範圍。

comp- 比較的函式,這裡要滿足compare的要求,如下:

總結下來一句話:就是在compare(int a ,int b)中,如果你想要從小到大排列,那麼你需要的是 return a平均 o(n·log(n)) 次比較,其中 n = std::distance(first, last) 。  

我們需要注意的是sort()採用的是優化版本的快速排序,在最後階段採用直接插入排序。因此時間複雜度為o(n·log(n))

#include #include #include #include int main();  

// 用預設的 operator< 排序

std::sort(s.begin(), s.end());

for (auto a : s)

std::cout << '\n';

// 用標準庫比較函式物件排序

std::sort(s.begin(), s.end(), std::greater());

for (auto a : s)

std::cout << '\n';

// 用自定義函式物件排序

struct

} customless;

std::sort(s.begin(), s.end(), customless);

for (auto a : s)

std::cout << '\n';

// 用 lambda 表示式排序

std::sort(s.begin(), s.end(), (int a, int b) );

for (auto a : s)

std::cout << '\n';

}

C std sort 函式使用

template class randomit class compare constexpr void sort randomit first,randomit last,compare comp 以一定排序規則排序指定範圍內的元素,但是演算法不具有穩定性,如果元素的值是相同的話不保證它們的相對順...

select函式使用總結

函式原型為 int select intmaxfdpl,fd set readfds,fd set writefds,fd set read exceptfds,struct timeval tvptr 1 前面文章已詳細解釋最後乙個引數,表示超時的引數,但是在除錯過程中發現設定了超時時間,但只有第...

VirtualAlloc函式使用總結

如果我們的程式需要動態記憶體的話,則遲早會呼叫win32函式virtualalloc。但是程式也可以不呼叫virtualalloc,而是直接呼叫windows堆函式或者crt堆函式。不過,知道virtualalloc如何工作,可以幫助我們更好地理解這些呼叫函式。首先,必須知道保留 reserved ...