21xrx.com
2024-11-22 02:57:51 Friday
登录
文章检索 我的文章 写文章
C++中sort函数的用法及示例
2023-11-08 17:00:43 深夜i     --     --
C++ sort函数 用法 示例

C++中的sort函数是一种非常实用的排序函数。它可以帮助我们对数组或容器中的元素进行排序操作。sort函数通常会采用快速排序算法或堆排序算法来实现,并且它的时间复杂度为O(NlogN)。

要使用sort函数,我们需要包含 头文件。sort函数的原型如下:


template<class RandomAccessIterator>

void sort(RandomAccessIterator first, RandomAccessIterator last);

template<class RandomAccessIterator, class Compare>

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

第一个原型是最常用的。它接收两个迭代器参数,第一个参数是要排序的范围的起始位置,第二个参数是要排序的范围的结束位置。排序范围通常是一个数组或容器,所以我们可以传递该数组或容器的begin()和end()方法返回的迭代器。

下面是一个使用sort函数的示例:


#include <iostream>

#include <algorithm>

#include <vector>

int main() {

  std::vector<int> numbers = 2;

  std::sort(numbers.begin(), numbers.end());

  for (int num : numbers)

    std::cout << num << " ";

  

  return 0;

}

在这个示例中,我们首先创建了一个包含几个整数的vector。然后,我们使用sort函数对numbers进行排序。最后,我们使用一个简单的for循环打印出排序后的结果。

输出结果将是:1 2 5 7 9

我们还可以自定义排序规则,通过传递一个比较函数作为sort函数的第三个参数。这个比较函数需要返回一个bool值,以告诉sort函数元素的相对顺序。下面是一个使用自定义排序规则的示例:


#include <iostream>

#include <algorithm>

#include <vector>

bool compare(int a, int b)

  return a > b;

int main() {

  std::vector<int> numbers = 1;

  std::sort(numbers.begin(), numbers.end(), compare);

  for (int num : numbers)

    std::cout << num << " ";

  

  return 0;

}

在这个示例中,我们定义了一个比较函数compare,它按照逆序排序元素。然后,我们将compare函数作为sort函数的第三个参数传递进去,从而实现按照逆序排序。

输出结果将是:9 7 5 2 1

总之,C++中的sort函数是一个非常实用的排序函数。它可以方便地对数组或容器中的元素进行排序操作,并且具有很高的效率。我们可以简单地通过传递begin()和end()方法返回的迭代器来使用sort函数,或者通过传递一个自定义的比较函数来实现特定的排序规则。

  
  

评论区

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