C++ stable_sort的自定义比较函数如何编写

avatar
作者
筋斗云
阅读量:0

要编写自定义比较函数来使用 stable_sort 函数进行稳定排序,我们需要定义一个函数,该函数接受两个参数并返回一个布尔值,用于指示哪个元素应排在前面。

以下是一个示例代码,演示如何编写一个自定义比较函数来对字符串长度进行稳定排序:

#include <iostream> #include <algorithm> #include <vector> #include <string>  // 自定义比较函数,按字符串长度进行排序 bool compareLength(const std::string& str1, const std::string& str2) {     return str1.length() < str2.length(); }  int main() {     std::vector<std::string> strings = {"apple", "banana", "orange", "kiwi", "pear"};      std::cout << "Before sorting:" << std::endl;     for (const auto& str : strings) {         std::cout << str << " ";     }     std::cout << std::endl;      // 使用自定义比较函数进行稳定排序     std::stable_sort(strings.begin(), strings.end(), compareLength);      std::cout << "After sorting by length:" << std::endl;     for (const auto& str : strings) {         std::cout << str << " ";     }     std::cout << std::endl;      return 0; } 

在上面的示例中,我们定义了一个名为 compareLength 的自定义比较函数,该函数接受两个参数,即两个字符串的引用,然后比较它们的长度并返回比较结果。在 main 函数中,我们使用 stable_sort 函数并传入自定义比较函数,对 strings 向量进行稳定排序。排序后,我们打印出排序前后的结果,以验证排序是否正确。

通过编写类似上面的代码,您可以自定义比较函数来对各种类型的数据进行稳定排序。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!