1. 程式人生 > >STL—利用pair和vector對有序對型別排序

STL—利用pair和vector對有序對型別排序

最近在學習演算法的時候,在搜尋演算法中偶然碰到了對有序對的排序問題,解法如下。

在講到該排序前,首先需掌握相關必要的知識。

一、有關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函式程式碼)