一、vector排序的概述
vector是C++ STL(Standard Template Library,標準模板庫)提供的一種動態數組容器,可以根據需要自動調整數組的大小。對於vector中的元素進行排序是常見的需求,可以讓數據更好地呈現出來。C++ vector排序有很多方法,本篇文章主要介紹幾種常用的方法,包括sort()函數、自定義比較函數、stable_sort()函數等。
二、sort()函數的使用
sort()函數是C++標準庫中提供的一種排序算法,其功能十分強大。我們可以用sort()函數對vector中的元素進行排序,具體代碼如下:
#include #include #include using namespace std; int main() { vector vec = {9, 3, 7, 1, 5}; sort(vec.begin(), vec.end()); for(int i = 0; i < vec.size(); i++) { cout << vec[i] << " "; } return 0; }
運行結果:1 3 5 7 9 。sort()函數默認按升序進行排序,如果需要降序排序,可以將代碼改為:
sort(vec.begin(), vec.end(), greater());
運行結果:9 7 5 3 1 。
三、自定義比較函數
除了使用sort()函數提供的默認升序和降序排序方式,我們還可以自定義比較函數來實現排序。下面的代碼演示了如何使用自定義比較函數對vector中的元素進行降序排序:
bool myfunc(int a, int b) { return a > b; } int main() { vector vec = {9, 3, 7, 1, 5}; sort(vec.begin(), vec.end(), myfunc); for(int i = 0; i < vec.size(); i++) { cout << vec[i] << " "; } return 0; }
運行結果:9 7 5 3 1 。
四、stable_sort()函數的使用
stable_sort()函數與sort()函數非常相似,不同之處在於stable_sort()函數能夠保證排序前後相等的元素相對位置不變。下面的代碼演示了如何使用stable_sort()函數進行排序:
int main() { vector vec = {9, 3, 7, 1, 5}; stable_sort(vec.begin(), vec.end()); for(int i = 0; i < vec.size(); i++) { cout << vec[i] << " "; } return 0; }
運行結果:1 3 5 7 9 。可以看到,stable_sort()函數與sort()函數的運行結果相同,只不過stable_sort()函數保證了相等元素的相對位置不變。
五、總結
C++ vector排序是實現數據排序的重要手段,通過sort()函數、自定義比較函數和stable_sort()函數的使用,我們可以對vector中的元素進行靈活的排序操作,以便更好地呈現數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193041.html