【C++】STL中 pair 和 make_pair 的關係

文章目錄

概述

pair 對組將2個數據組合,如 stl 中的 map 就是將 key 和 value 放在一起來保存。當一個函數需要返回2個數據的時候,可以選擇 pair。 pair 的實現是一個結構體,主要的兩個成員變量是 first 和 second,因爲是使用 struct 不是 class,所以可以直接使用 pair 的成員變量。具體參見:C++ class和struct的區別

pair是二元組類模版,make_pair實際上是創建二元組的函數模版,在C++中,函數模版可省略參數,make_pair也是利用這一特性。make_pair 的實現如下。

template<class K,class V>
inline std::pair<K,V> make_pair(const K&k,const V&v)
{
	return std::pair<K,V>(k,v);
}

由此可見,make_pair 調用了 pair 的構造函數,同時 make_pair 不需要指定類型,直接推演。

// 例: 
std::make_pair(42, '@'); 
// 不必費力寫成: 
std::pair<int, char>(42, '@')

參考鏈接

關於C++ pair 和make_pair的用法
C++中 pair 和 make_pair 的用法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章