sort()
是 C++ 标准库中的一个函数,它被用来对容器(如 vector
, array
, list
等)或数组中的元素进行排序。sort()
函数是一个通用的模板函数,可以在 <algorithm>
头文件中找到。
基本用法
sort()
函数的基本原型如下:
template< class RandomAccessIterator >
void sort( RandomAccessIterator first,
RandomAccessIterator last );
template< class RandomAccessIterator, class Compare >
void sort( RandomAccessIterator first,
RandomAccessIterator last,
Compare comp );
其中:
first
和last
定义了要排序的范围,last
指向范围之外的第一个元素。comp
是一个可选的比较函数对象,用于自定义排序顺序,默认情况下使用<
运算符进行升序排序。
示例
假设我们有一个 std::vector<int>
,我们想要对其进行排序:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {5, 2, 4, 1, 3};
// 对 vector 进行排序
std::sort(numbers.begin(), numbers.end());
// 输出排序后的结果
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
自定义排序
如果我们想要按照不同的规则进行排序,可以提供一个比较函数或比较函数对象:
#include <iostream>
#include <vector>
#include <algorithm>
bool compare(int a, int b) {
return a > b; // 降序排序
}
int main() {
std::vector<int> numbers = {5, 2, 4, 1, 3};
// 使用自定义的比较函数进行降序排序
std::sort(numbers.begin(), numbers.end(), compare);
// 输出排序后的结果
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
在这个例子中,compare
函数返回 true
如果 a
应该排在 b
的前面,从而实现了降序排序。