21xrx.com
2024-12-22 18:20:04 Sunday
登录
文章检索 我的文章 写文章
如何使用C++的sort函数进行数组排序?
2023-07-05 13:00:14 深夜i     --     --
C++ sort函数 数组排序

在C++中,有许多方式可以对数组进行排序。而其中最常用的方式之一就是利用sort函数进行排序。sort函数是C++ STL标准库中的一个排序函数,具有极高的执行效率和便利性。使用sort函数可以实现对不同类型的数组进行排序,如字符型数组、整型数组、浮点型数组等等。下面我们就来了解一下如何使用C++的sort函数进行数组排序。

1.排序整型数组

对于整型数组,可以使用sort函数进行升序或者降序排序。以下是一个简单的例子:


#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

  int arr[] = 8;

  int len = sizeof(arr) / sizeof(int);

  sort(arr, arr + len);      //升序排列

  for (int i = 0; i < len; i++)

  {

    cout << arr[i] << " ";

  }

  cout << endl;

  sort(arr, arr + len, greater<int>());  //降序排列

  for (int i = 0; i < len; i++)

  {

    cout << arr[i] << " ";

  }

  return 0;

}

上述代码中,sort(arr, arr+len)表示升序排列,而sort(arr, arr+len, greater ())表示降序排列。

2.排序字符型数组

对于字符型数组,需要注意以下几点:

- sort函数的参数类型是指针,因此需要使用指针形式的数组。

- 字符型数组的开始和结束位置分别为arr和arr+len-1。

- 所以在排序的时候,可以使用以下代码:


#include <iostream>

#include <algorithm>

#include <string.h>

using namespace std;

bool cmp(char a, char b)

  return a < b;

int main()

{

  char arr[] = "hcdefbag";

  int len = strlen(arr);

  sort(arr, arr + len, cmp);

  for (int i = 0; i < len; i++)

  {

    cout << arr[i] << " ";

  }

  return 0;

}

在上述代码中,cmp函数是用来定义字符型数组元素排序规则的,上面的代码是按照字符的ASCII码值升序排序的。

3.排序结构体数组

struct person

  string name;

  int age;

;

bool cmp(person a, person b)

{

  if (a.age == b.age)

    return a.name < b.name;

  else

    return a.age < b.age;

}

int main()

{

  person arr[] = { 20 , "Jack", "Lucy", 18 };

  int len = sizeof(arr) / sizeof(person);

  sort(arr, arr + len, cmp);

  for (int i = 0; i < len; i++)

  {

    cout << arr[i].name << " " << arr[i].age << endl;

  }

  return 0;

}

上述代码中,结构体person里面有name和age两个成员,而cmp函数则定义了结构体数组的排序规则,首先按照age进行升序排序,如果age相同,则按照name进行升序排序。

  
  

评论区

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