C++ - 知识点合集
C++零碎知识点整理🐣

基本用法

sort 函数是 C++ 标准库中的一个强大的排序算法,通常实现为快速排序。这个函数定义在 <algorithm> 头文件中。sort 可以对一个序列进行排序,使之按照升序排列。基本语法如下:

1
2
sort(RandomAccessIterator first, RandomAccessIterator last);
sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);
  • firstlast 是定义待排序序列的随机访问迭代器。
  • comp 是一个可选的比较函数或者函数对象,用于自定义排序顺序。

特点和注意事项

  1. 时间复杂度: sort 的平均时间复杂度是 O(n log n),其中 n 是[first, last)范围内元素的数量。
  2. 随机访问迭代器: sort 需要随机访问迭代器,因此适用于 std::vectorstd::deque、数组等,但不适用于 std::list
  3. 稳定性: 标准库中的 sort 不保证排序的稳定性。如果需要稳定排序,可以使用 stable_sort
  4. 自定义排序: 通过提供比较函数,可以实现自定义排序逻辑。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
std::vector<int> v = {4, 2, 5, 1, 3};

// 按升序排序
std::sort(v.begin(), v.end());

std::cout << "Sorted array: ";
for (int i : v) {
std::cout << i << " ";
}
std::cout << std::endl;

// 使用自定义比较函数进行降序排序
std::sort(v.begin(), v.end(), [](int a, int b) {
return a > b;
});

std::cout << "Sorted in descending order: ";
for (int i : v) {
std::cout << i << " ";
}
std::cout << std::endl;

return 0;
}

在这个例子中,首先使用 sort 将向量 v 按升序排序,然后使用自定义比较函数将其按降序排序。

这里展示的就是使用自定义匿名函数重新规定排序规则


本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。