最近在學習演算法的時候,在搜尋演算法中偶然碰到了對有序對的排序問題,解法如下。
在講到該排序前,首先需掌握相關必要的知識。
一、有關pair的知識
pair是一種系統自帶的模板型別。在資料結構中,pair的作用生成有序數對,擁有兩個值,也支援自定義的struct結構型別。
pair的使用
pairm_variable;
其中,type1和type2是兩種資料型別,可以相同也可不同,也可以是自定義的struct結構;m_variable是pair型別的乙個有序對的變數名,例如:
pairm_pair1;
pairm_pair2;
pair模板擁有函式make_pair,該函式的作用即將已存在的兩個變數組成有序對。例如:
int var1=10,var2=5;
pairp1=(var1,var2);
string str="second";
pairp2=make_pair(var1,str);
二、排序
定義一種排序方式,公升序或是降序
定義vector並進行排序
完整**如下(不包括main函式**)
STL之pair原始碼分析
直接進入主題,請看pair的原始碼 namespace std 預設建構函式,用型別的預設建構函式初始化兩個資料成員 pair const t1 a,const t2 b first a second b 建構函式,用a初始化first,用b初始化second template 模板函式,拷貝建構函...
stl中pair容器的用法
有時候,要用pair的時候就會忘記了,又得重新翻資料,所以在blog中總結一下 簡而言之pair就是乙個結構體,但是比結構體更加得靈活 template struct pair 模板,t1,t2,可以是不同的型別 建構函式 includeusing namespace std include inc...
STL之pair常見用法詳解
摘自胡凡的 演算法筆記 僅作記錄用!前言 一 pair的定義 pair有兩個引數,分別對應first和second的資料型別,它們可以是任意基本資料型別或容器,可以使用pairname 定義乙個pair型別。如果想要在 中令是構建乙個pair,有如下兩種方法 二 pair容器內元素的訪問 pair中...