stable_sort()是C++標準庫中的一個排序算法,它用于對容器中的元素進行排序。與其他排序算法不同的是,stable_sort()會保持相等元素的相對順序不變。
下面是一個使用stable_sort()的簡單示例,對一個包含字符串的vector進行排序:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> fruits = {"banana", "apple", "orange", "grape", "apple"};
std::cout << "Before sorting:" << std::endl;
for (const auto& fruit : fruits) {
std::cout << fruit << " ";
}
std::cout << std::endl;
std::stable_sort(fruits.begin(), fruits.end());
std::cout << "After sorting:" << std::endl;
for (const auto& fruit : fruits) {
std::cout << fruit << " ";
}
std::cout << std::endl;
return 0;
}
這個示例首先創建了一個vector fruits,其中包含了一些水果名稱。然后,使用stable_sort()對fruits進行排序。排序后,打印出排序后的結果。
輸出結果為:
Before sorting:
banana apple orange grape apple
After sorting:
apple apple banana grape orange
可以看到,排序后的fruits按照字母順序進行了排序,同時相等的元素(這里是"apple")的相對順序保持不變。
這就是使用stable_sort()的一個簡單示例。它適用于對容器中的元素進行排序,并且需要保持相等元素的相對順序不變的情況。