最近在学习算法的时候,在搜索算法中偶然碰到了对有序对的排序问题,解法如下。
在讲到该排序前,首先需掌握相关必要的知识。
一、有关pair的知识
pair是一种系统自带的模板类型。在数据结构中,pair的作用生成有序数对,拥有两个值,也支持自定义的struct结构类型。
pair的使用
pair<type1,type2>m_variable;
其中,type1和type2是两种数据类型,可以相同也可不同,也可以是自定义的struct结构;m_variable是pair类型的一个有序对的变量名,例如:
pair<int,int>m_pair1;
pair<double,string>m_pair2;
pair模板拥有函数make_pair,该函数的作用即将已存在的两个变量组成有序对。例如:
int var1=10,var2=5;
pair<int,int>p1=(var1,var2);
string str="second";
pair<int,string>p2=make_pair(var1,str);
二、排序
定义一种排序方式,升序或是降序
定义vector并进行排序
完整代码如下(不包括main函数代码)