C 定義比較函式的幾種方法

2022-04-11 01:02:30 字數 1246 閱讀 6798

為了說明c++定義比較函式的幾種方法,下面將以sort函式為例進行說明。

1.預設的內建比較函式,將按照物件內定義的《運算子由小到大排序

#include #include #include #include #include using namespace std;

int main()

; sort(vec.begin(), vec.end());

copy(vec.begin(), vec.end(), ostream_iterator(cout, "\n"));

return 0;

}

2.使用自定義的比較函式cmp,將按照從大到小的順序排序

bool cmp(const string & a, const string & b)

int main()

; sort(vec.begin(), vec.end(), cmp);

copy(vec.begin(), vec.end(), ostream_iterator(cout, "\n"));

return 0;

}

3.使用c++內建的function object

int main()

; sort(vec.begin(), vec.end(), greater());

copy(vec.begin(), vec.end(), ostream_iterator(cout, "\n"));

return 0;

}

4.使用c++11新支援的lambda表示式

int main()

; sort(vec.begin(), vec.end(), (const string & a, const string & b) );

copy(vec.begin(), vec.end(), ostream_iterator(cout, "\n"));

return 0;

}

5.過載()運算子,即自定義乙個function object

class cmp

};int main()

; sort(vec.begin(), vec.end(), cmp());

copy(vec.begin(), vec.end(), ostream_iterator(cout, "\n"));

return 0;

}

scala函式定義的幾種方法

scala看了有幾天了,也試著寫了 hello world 今天試著練習伴生物件的時候,突然搞不明白scala伴生物件中定義的函式,並不能按我的想法工作。scala真是個非常靈活的語言,這裡還是總結下函式定義的幾種情況吧。1 規規矩矩的寫法,帶有等號 大括號和返回值型別的形式 def myfunc ...

C 中定義比較函式的三種方法

c 程式設計優與pascal的原因之一是c 中存在stl 標準模板庫 stl存在很多有用的方法。c 模板庫中的許多方法都需要相關引數有序,例如sort 顯然,如果你想對乙個集合進行排序,你必須要知道集合中的物件,那個在前那個在後。因此,學會如何定義比較方法是非常重要的。c 模板庫的許多容器需要相關型...

定義矩陣的幾種方法

本文主要討論的是在矩陣大小未知的情況。在陣列大小未知時,一般常用的定義方法是動態記憶體分配,對於乙個高維陣列,以2d的int 型陣列為例 1.將陣列定義為一維的,如 int array new int row colum 2.另一種方法是仍然定義為高維的形式,如 int array new int ...