C++ STL的sort 函數 以及自定義的比較函數


    沒什么特別擅長的內容,先做個小筆記好了。在編程時,使用C++的標准模板庫(STL)能節約工作量,增加代碼的可讀性,能靈活運用無疑會提高編程的效率,俗話說:Write less, create more ~

 

    然后這篇筆記就簡單討論一下sort函數吧。對於vector,我們使用algorithm頭文件中的sort函數來排序元素,如果元素類型是實數、字符串之類的,直接使用sort 函數就可以方便的排序了。使用方法就是:

    #include <vector>

    #include <algorithm>

    ...

    vector<int> numbers;

    ...

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

    傳入要排序部分頭尾的迭代器就ok了,默認的結果是將元素按從小到大的順序排序。

 

    sort 函數的功能很易於擴展,我們可以給它一個比較函數,讓它按我們希望的方式工作。

    如果想要自定義比較函數,就像這樣:

    bool less_int(int a,int b){

        return b<a;

    }

    ...

    sort(numbers.begin(),numbers.end(),less_int);

    函數名稱隨便,合法就可以。傳入的參數類型與vector 的元素類型相同。函數的返回值是bool 類型的,如果第一個參數比第二個小就返回true,反之返回 false。上面的例子就是當b小於a時,認為a小於b。所以排序的結果就是將元素按從大到小的順序排序。

    其他深入的分析我就不做了,這些對應用來說足夠了。至於時間復雜度、穩定性之類的,自從數據結構結課之后,我就沒關心過了 - -b

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM