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 ...