-
CMP
(C++ sort函數自定義關鍵字函數)
鎖定
比較函數compare()縮寫cmp。
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.
[1]
該函數不得修改其任何參數。
這可以是函數指針或函數對象。
- 中文名
- 比較函數
- 外文名
- A comparison functor
- 參數原型
- _Compare __comp
- 所屬函數
- sort
CMPsort函數信息
std::sort
[1]
default (1) | template <class RandomAccessIterator> void sort (RandomAccessIterator first, RandomAccessIterator last); |
---|---|
custom (2) | template <class RandomAccessIterator, class Compare> void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); |
CMP實例
CMPExample
// sort algorithm example #include <iostream> // std::cout #include <algorithm> // std::sort #include <vector> // std::vector bool myfunction (int i,int j) { return (i<j); } struct myclass { bool operator() (int i,int j) { return (i<j);} } myobject; int main () { int myints[] = {32,71,12,45,26,80,53,33}; std::vector<int> 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<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it) std::cout << ' ' << *it; std::cout << '\n'; return 0; }
CMPOutput
myvector contains: 12 26 32 33 45 53 71 80
- 參考資料
-
- 1. sort - C++ Reference .cplusplus[引用日期2018-12-01]
- 2. - C++ Reference .cplusplus[引用日期2018-12-01]