C/C++教程

c++ sort自定义排序

本文主要是介绍c++ sort自定义排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

介绍

如何使用c++ STL中的sort函数去排序一些结构体类型的数据呢?
这里可以采用自定义比较函数的方法。

#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;

typedef struct
{
	int x;
	int y;
} point;
//从小到大排序,以x为主序,y为次序
bool cmp1(point &a, point &b)
{
	if (a.x == b.x)
	{
		return a.y < b.y;
	}
	return a.x < b.x;
}

//从大到小排序,以x为主序,y为次序
bool cmp2(point &a, point &b)
{
	if (a.x == b.x)
		return a.y > b.y;
	return a.x > b.x;
}
int main()
{
	int n = 10;
	point p[10];
	for (int i = 0; i < 10; i++)
	{
		p[i].x = rand() % 10 + 1;
		p[i].y = rand() % 10 + 1;
		cout << p[i].x << " " << p[i].y << endl;
	}
	cout << "the sort's result:............." << endl;
	sort(p, p + 10, cmp2);
	for (int i = 0; i < 10; i++)
		cout << p[i].x << " " << p[i].y << endl;
	return 0;
}

值得关注的地方就是两个cmp1cmp2函数,

  • cmp1希望用来实现从小到大排序

  • cmp2希望用来实现从大到小排序

这篇关于c++ sort自定义排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!