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
intmain()
;// 用預設的 operator< 排序
std::
sort
(s.begin()
, s.
end())
;for
(auto a : s)
std::cout <<
'\n'
;// 用標準庫比較函式物件排序
std::
sort
(s.begin()
, s.
end(
), std::greater<
int>()
);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 以一定排序規則排序指定範圍內的元素,但是演算法不具有穩定性,如果元素的值是相同的話不保證它們的相對順...
函式 使用函式指標操作函式
設計乙個名為calculate 的函式,他接受兩個double 值和乙個指向函式的指標,而被指向的函式接受兩個double引數,並返回乙個double值 calculate 函式的型別也是double,並返回被指向的函式值用calculate 的兩個double引數計算得到的值。例如,假設add 函...
eval函式 php PHP eval函式使用介紹
eval echo hello world 上邊 等同於下邊的 echo hello world 在瀏覽器中都輸出 hello world 運用eval 要注意幾點 1.eval函式的引數的字串末尾一定要有分號,在最後還要另加乙個分號 這個分號是php限制 2.注意單引號,雙引號和反斜槓的運用。如果...