qsort:快速排序
sort:快速排序的优化版
而且qsort的比较函数的参数需要转换类型,并且用'-'进行比较,所以一般用sort
代码:
#include <iostream>
#include <algorithm> //sort头文件
#include <stdlib.h> //qsort头文件
using namespace std;
struct Node{
int x;
int y;
bool operator <(const Node& a) const{
return x < a.x; //从小到大
//return x < a.x; //从大到小
}
};
int cmp(const void* a, const void* b) {
Node* a1 = (Node*)a;
Node* b1 = (Node*)b;
return a1 -> x - b1 -> x; //从小到大
//return b1 -> x - a1 -> x; //从大到小
}
struct array{
Node* node;
};
int main() {
array* arr = new array;
arr->node = new Node[2];
arr -> node[0].x = 1;
arr -> node[1].x = 2;
arr -> node[2].x = 3;
arr -> node[3].x = 4;
//sort(arr -> node,arr -> node + 4);
qsort(arr -> node, 4, sizeof(arr -> node[0]), cmp);
for(int i = 0; i < 4; i++)
cout<<arr -> node[i].x<<ends;
}