在編程中,我們經常需要對list進行排序。本文將從幾個方面介紹如何對list進行排序,包括STL中的sort()函數、自定義比較函數進行排序、按字典序排序和按字元串長度排序。
一、使用STL中的sort()函數進行排序
STL中提供了sort()函數,其可以對list容器中的元素進行排序。sort()函數默認升序排序,對於list容器,按照字典序排序。下面是示例代碼:
#include #include #include using namespace std; int main() { list mylist{"apple", "banana", "orange", "pear"}; mylist.sort(); for (string& s : mylist) cout << s << " "; return 0; }
上述代碼中,我們創建了一個list容器,將其內容設定為{“apple”, “banana”, “orange”, “pear”},使用sort()函數對其進行排序,最後將排好序的容器輸出。輸出結果為:apple banana orange pear。
二、使用自定義比較函數進行排序
在有些情況下,我們需要按照自定義規則進行排序,此時我們可以使用sort()函數的第三個參數進行自定義比較。下面是示例代碼:
#include #include #include using namespace std; bool mycompare(string s1, string s2) { return s1.size() < s2.size(); } int main() { list mylist{"apple", "banana", "orange", "pear"}; mylist.sort(mycompare); for (string& s : mylist) cout << s << " "; return 0; }
上述代碼中,我們定義了一個自定義比較函數mycompare(),其按照字元串長度進行排序。使用sort()函數對mylist容器進行排序,最後將排好序的容器輸出。輸出結果為:pear apple banana orange。
三、按字典序排序
對於list容器,默認使用字典序進行排序。下面是示例代碼:
#include #include #include using namespace std; int main() { list mylist{"apple", "banana", "orange", "pear"}; mylist.sort(); for (string& s : mylist) cout << s << " "; return 0; }
上述代碼中,我們創建了一個list容器,將其內容設定為{“apple”, “banana”, “orange”, “pear”},使用sort()函數對其進行排序,最後將排好序的容器輸出。輸出結果為:apple banana orange pear。
四、按字元串長度排序
如果我們需要按照字元串長度進行排序,可以使用自定義比較函數,其比較規則為字元串長度。下面是示例代碼:
#include #include #include using namespace std; bool mycompare(string s1, string s2) { return s1.size() < s2.size(); } int main() { list mylist{"apple", "banana", "orange", "pear"}; mylist.sort(mycompare); for (string& s : mylist) cout << s << " "; return 0; }
上述代碼中,我們定義了一個自定義比較函數mycompare(),其按照字元串長度進行排序。使用sort()函數對mylist容器進行排序,最後將排好序的容器輸出。輸出結果為:pear apple banana orange。
在編程中,對list進行排序是非常常見的操作,本文介紹了使用STL中的sort()函數進行排序、使用自定義比較函數進行排序、按字典序排序和按字元串長度排序。在實際應用中,我們可以根據自己的需求選擇合適的排序方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/277963.html