21xrx.com
2024-11-05 14:51:15 Tuesday
登录
文章检索 我的文章 写文章
C++中使用自定义sort函数排序
2023-06-30 18:24:13 深夜i     --     --
C++ 自定义 sort函数 排序 数组

在C++中,sort函数是一个非常常用的函数,用于对数组或容器中的元素进行排序。然而,在某些情况下,我们可能需要对特定的数据类型进行排序,并且需要一些自定义的规则来进行排序。这时候,我们可以使用自定义sort函数来实现。

自定义sort函数需要满足以下几个要求:

1. 函数原型与sort函数相同;

2. 函数需要接受两个参数,这两个参数为待排序的元素;

3. 函数需要返回一个bool值,用于指示两个元素排序后的顺序。

下面以一个实际的例子来演示如何使用自定义sort函数进行排序。假设现在有一个结构体Person,其中包含了人的姓名和年龄信息:


struct Person

  string name;

  int age;

;

现在我们需要按照人的年龄从小到大进行排序。我们可以使用如下的自定义sort函数:


bool cmp(const Person& p1, const Person& p2)

  return p1.age < p2.age;

这个函数接受两个Person类型的参数,并返回一个bool值。在函数体内部,我们比较了这两个人的年龄,如果p1的年龄小于p2的年龄,就返回true,否则返回false。这样,sort函数就会按照我们自定义的规则进行排序。

下面是使用自定义sort函数进行排序的代码示例:


int main() {

  vector<Person> people = { 20, "John", "Amy"};

  sort(people.begin(), people.end(), cmp);

  for (auto p : people)

    cout << p.name << " " << p.age << endl;

  

  return 0;

}

在这个示例中,我们定义了一个包含三个Person对象的vector,然后调用了sort函数进行排序,并打印出了排序后的结果。可以看到,输出结果按照人的年龄从小到大进行了排序。

总的来说,使用自定义sort函数进行排序能够满足我们对特定数据类型的排序需求。在实际的开发中,我们需要根据实际情况定义不同的自定义sort函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复