概述
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, '@')