為了說明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 ...