常使用在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 的成...