21xrx.com
2024-09-20 09:45:40 Friday
登录
文章检索 我的文章 写文章
C++中sort函数的使用方法
2023-07-07 22:49:20 深夜i     --     --
C++排序 sort函数 自定义比较函数 数组排序 Vector排序

C++中sort函数是一种常用的排序算法,它可以对数组等容器进行排序。下面介绍一下sort函数的使用方法。

1. sort函数的定义

sort函数定义在algorithm头文件中,其声明格式为:

void sort (RandomAccessIterator first, RandomAccessIterator last [,Compare comp]);

其中RandomAccessIterator表示递归容器的迭代器类型,first和last是容器的起始和结束位置迭代器,comp是用来比较元素大小的可调用对象,可省略。

2. sort函数的使用

sort函数支持对数组和其他容器(如vector)进行排序。使用前需要include 头文件。

下面是一个用sort函数对数组进行排序的例子:

#include

#include

using namespace std;

int main()

{

  int arr[] = 5;  // 定义一个数组

  int n = sizeof(arr) / sizeof(int);  // 数组元素个数

  sort(arr, arr + n);  // 排序

  for (int i = 0; i < n; ++i) {

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

  }

  cout << endl;

  return 0;

}

输出结果:1 2 5 8 9

当然,sort也可以对其他容器进行排序,比如vector,使用方法类似。代码如下:

#include

#include

#include

using namespace std;

int main()

{

  vector vec = 8;  // 定义一个vector

  int n = vec.size();  // vector元素个数

  sort(vec.begin(), vec.end());  // 排序

  for (int i = 0; i < n; ++i) {

    cout << vec[i] << " ";

  }

  cout << endl;

  return 0;

}

输出结果:1 2 5 8 9

3. sort函数的比较方式

sort函数默认使用递增的方式进行排序,如果要改变排序方式,需要在sort函数的第三个参数中传入一个比较函数,比较函数可以是函数指针、仿函数或Lambda表达式。

如果要实现递减排序,可以传入一个仿函数或Lambda表达式,如下所示:

struct greater_than {

  template

  bool operator()(const T &a, const T &b) const

    return a > b;

};

sort(arr, arr + n, greater_than());  // 递减排序

或者使用Lambda表达式:

sort(arr, arr + n, [](int a, int b) return a > b; );  // 递减排序

4. sort函数的时间复杂度

sort函数的平均时间复杂度为O(n logn),最坏情况下的时间复杂度为O(n^2),空间复杂度为O(1)。

以上就是sort函数的使用方法,使用sort函数可以轻松快捷地实现排序功能,提高程序效率。

  
  

评论区

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