21xrx.com
2024-11-05 20:39:18 Tuesday
登录
文章检索 我的文章 写文章
C++11 排序函数 Sort
2023-07-09 06:15:52 深夜i     --     --
C++11 排序函数 Sort

C++11是C++的新标准,引入了许多新特性,其中包括排序函数sort。Sort函数是一个强大的函数,用于对数组或容器中的元素进行排序。本文将详细介绍C++11中的排序函数Sort。

1. 基本使用

Sort函数的基本用法是使用两个参数,第一个参数是要进行排序的数组或容器的起始地址,第二个参数是排序结束的地址。例如:


int arr[] = 5;

sort(arr, arr + 5);

这里的arr是一个整型数组,sort函数将这个数组排序。第二个参数是将要排序的元素的下一个元素。因此,上面的代码将对整个数组进行排序。

2. 自定义排序

Sort函数还可以接受一个可选的比较函数作为第三个参数。这个比较函数用于定义自定义排序规则。例如,如果要按照绝对值对一组数字进行排序,可以使用以下比较函数:


bool abs_compare(int a, int b) {

  return (abs(a) < abs(b));

}

int arr[] = 5;

sort(arr, arr + 5, abs_compare);

这里的abs_compare函数将两个整数作为输入,并返回它们的绝对值是否应该交换。sort函数使用这个比较函数来按照绝对值排序这组数字。

3. Lambda 表达式

C++11引入了Lambda表达式,使得可以轻松创建简单的比较函数,从而简化自定义排序的过程。以下是一个使用Lambda表达式的排序示例:


int arr[] = 1;

sort(arr, arr + 5, [](int a, int b) { return abs(a) < abs(b); });

这里使用了Lambda表达式来创建一个与上面例子中的abs_compare函数相同的比较函数。

4. 反向排序

sort函数还可以使用std::greater作为比较函数,以对数组进行反向排序。例如:


int arr[] = 1;

sort(arr, arr + 5, greater<int>());

这里的greater 是一个函数对象,用于比较两个整数,并按照反向顺序对它们进行排序。

总之,Sort函数是C++11标准中一个强大而又方便的排序工具。它能够对数组和容器中的元素进行排序,同时也支持自定义排序规则和反向排序。有了这一工具,我们可以更加方便地进行排序操作。

  
  

评论区

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