溫馨提示×

c++ list.sort如何處理重復元素

c++
小樊
81
2024-09-27 17:24:42
欄目: 編程語言

在C++中,list.sort()函數默認會對列表中的元素進行升序排序。如果列表中有重復的元素,它們會被保留在排序后的列表中,但是它們的相對順序可能會改變。

如果你想要在排序后保持重復元素的相對順序,你可以使用stable_sort()函數,而不是sort()函數。stable_sort()函數會保持相等元素的相對順序。

以下是一個使用stable_sort()函數的例子:

#include <algorithm>
#include <list>
#include <iostream>

int main() {
    std::list<int> myList = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};

    // 使用stable_sort()函數對列表進行排序
    std::stable_sort(myList.begin(), myList.end());

    // 輸出排序后的列表
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

輸出結果:

1 1 2 3 3 4 5 5 5 6 9

在這個例子中,我們可以看到重復的元素1、3和5在排序后保持了它們的相對順序。

0