CMP

C++ sort函數自定義關鍵字函數

比較函數compare()縮寫cmp。

comp

Binary function that accepts two elements in the range as arguments, and returns a value convertible to bool. The value returned indicates whether the element passed as first argument is considered to go before the second in the specific strict weak ordering it defines.The function shall not modify any of its arguments.This can either be a function pointer or a function object.

比較函數,以形參列表中的兩個元素作為參數,並返回可轉換為bool類型的值。返回的值表示作為第一個參數傳遞的元素是否被認為是在它定義的特定嚴格弱順序中的第二個參數之前。

該函數不得修改其任何參數。

這可以是函數指針或函數對象。

函數介紹


functiontemplate
std:: sort。
default (1)template void sort (RandomAccessIterator first, RandomAccessIterator last);
custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp)。

實例


Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// sort algorithm example
#include  // std::cout
#include  // std::sort
#include  // std::vector
 
bool myfunction (int i,int j) { return (i
 
struct myclass {
bool operator() (int i,int j) { return (i
} myobject;
 
int main () {
int myints[] = {32,71,12,45,26,80,53,33};
std::vector myvector (myints, myints+8); // 32 71 12 45 26 80 53 33
 
// using default comparison (operator <):
std::sort (myvector.begin(), myvector.begin()+4); //(12 32 45 71)26 80 53 33
 
// using function as comp
std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
 
// using object as comp
std::sort (myvector.begin(), myvector.end(), myobject); //(12 26 32 33 45 53 71 80)
 
// print out content:
std::cout << "myvector contains:";
for (std::vector::iterator it=myvector.begin(); it!=myvector.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
 
return 0;
}
Output:
1myvector contains: 12 26 32 33 45 53 71 80
CMP
CMP