pairs和make pair的使用

2021-08-04 16:55:38 字數 1216 閱讀 4293

常使用在map物件

insert裡面

1、pairs

c++標準程式庫中凡是「必須返回兩個值」的函式, 也都會利用

pair物件

class

pair可以將兩個值視為乙個單元。容器類別

map和

multimap

就是使用

pairs

來管理其健值/實值

(key/value)

的成對元素。

std::pair>

pair被定義為

struct,

因此可直接訪問

pair

中的個別值.

兩個pairs互相比較時, 第乙個元素正具有較高的優先順序.

例: std::map> _allshowclub;

std::vector_count;

_allshowclub.insert(std::pair>((uint16_t)1, _count));

2、make_pair():

無需寫出型別,

就可以生成乙個pair物件 例:

std::make_pair(42, '@');

而不必費力寫成:

std::pair(42, '@')

當有必要對乙個接受pair引數的函式傳遞兩個值時,

make_pair()

尤其顯得方便,

void f(std::pair);

void foo

很明顯,我們可以使用pair的建構函式也可以使用

make_pair

來生成我們需要的

pair

。 一般

make_pair

都使用在需要

pair

做引數的位置,可以直接呼叫

make_pair

生成pair

物件很方便,**也很清晰。 另乙個使用的方面就是

pair

可以接受隱式的型別轉換,這樣可以獲得更高的靈活度。靈活度也帶來了一些問題如:

std::pair(1, 1.1);

std::make_pair(1, 1.1);

是不同的,第乙個就是float,而第

2個會自己匹配成

double。

std::map> _allshowclub;

_allshowclub.insert(std:: make_pair(1,1.1));

pairs 和 ipairs 的區別

ipairs 在迭代過程中是會直接跳過所有手動設定key值的變數。pairs不會跳過手動設定key值的變數。例項tab for i,v in pairs tab do print i,v end 輸出112 23da cd 例項tab for i,v in ipairs tab do print i...

C 中 pair 和 make pair 的用法

參見大佬部落格 另外我再補充一點 pair是二元組類模版,make pair實際上是建立二元組的函式模版,在c 中,函式模版可省略引數,make pair也是利用這一特性。下面再看一下make pair的實現 templateinline std pairmake pair const k k,co...

C 學習(五)pair和make pair

std pair主要的作用是將兩個資料組合成乙個資料,兩個資料可以是同一型別或者不同型別。c 標準程式庫中凡是 必須返回兩個值 的函式,也都會利用pair物件。class pair可以將兩個值視為乙個單元。容器類別map和multimap就是使用pairs來管理其健值 實值 key value 的成...