sort(起始位置,末尾位置,cmp)
末尾位置不取
要对数组进行排序:
数组是a,有10个数
sort(a,a+10)
对于动态数组vector!
sort(a.begin(), a.end())
在不同问题下比较函数可以自己定义:(默认是升序)
bool cmp(int x,int y){
return x>y;//x大于y,x在y前面,降序
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {
int n; // 用于存储每组输入的整数个数// 使用while循环处理多组测试数据,直到输入结束 (EOF)
while (cin >> n) {
vector<int> a(n); // 使用vector存储输入的n个整数// 使用for循环读取n个整数并存储在vector a中
for (int i = 0; i < n; i++) {
cin >> a[i]; // 读取一个整数并存储到vector a的第i个位置
}// 使用sort对vector a进行排序
sort(a.begin(), a.end()); // 使用vector的begin和end来定义排序范围// 输出排序后的vector a
for (int i = 0; i < n; i++) {
cout << a[i] << " "; // 输出vector a的第i个元素,并在后面加上一个空格
}
cout << endl; // 输出换行符,表示一组测试数据的输出结果
}return 0;
}