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

2021-07-05 03:06:19 字數 878 閱讀 1210

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

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

一、有關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中...