1. 程式人生 > >C++學習筆記——關於STL sort()函式的第三個引數問題

C++學習筆記——關於STL sort()函式的第三個引數問題

STL    sort()函式有三個引數的過載型別

template<class RandomAccessIterator, class Predicate>
   void sort(
      RandomAccessIterator first, 
      RandomAccessIterator last, 
      Predicate comp
   );

檢視MSDN,上述引數的含義如下

first

處理第一元素位置的隨機訪問迭代器。範圍進行排序。

last

定址最終元素的隨機訪問迭代器位置將一個排序的範圍。

comp

定義的順序連續的元素將滿足的比較條件的使用者定義的謂詞函式物件。

留意其中示例中自定義謂詞函式

bool UDgreater ( int elem1, int elem2 )
{
   return elem1 > elem2;
}

以及下面一句說明

sort 演算法不是穩定的。

因此自定義謂詞函式還有一個要求必須是不穩定的。否則會valid comparator報錯