std::pair主要的作用是將兩個資料組合成乙個資料,兩個資料可以是同一型別或者不同型別。例如std::pair或者 std::pair等。pair實質上是乙個結構體,其主要的兩個成員變數是first和second,這兩個變數可以直接使用。初始化乙個pair可以使用建構函式,也可以使用std::make_pair函式,make_pair函式的定義如下:
template pair make_pair(t1 a, t2 b)
一般make_pair都使用在需要pair做引數的位置,可以直接呼叫make_pair生成pair物件。 另乙個使用的方面就是pair可以接受隱式的型別轉換,這樣可以獲得更高的靈活度。但是這樣會出現如下問題:例如有如下兩個定義:
std::pair(1, 1.1);
std::make_pair(1, 1.1);
其中第乙個的second變數是float型別,而make_pair函式會將second變數都轉換成double型別。這個問題在程式設計是需要引起注意。下面是一段pair與make_pair的例子程式:
1#include
2#include
3#include
4usingnamespace std;
56int main ()
其執行結果如下:
1the price of tomatoes is $3.25
2the price of lightbulbs is $0.99
3the price of shoes is $20
01 pair vs make_pair
02 make_pair constructs a pair object.
03 template
04 pair make_pair(t1 x, t2 y)
05 08
09 eg: std::pair("sn001", 12.5);
10 std::make_pair("sn001", 12.5);
11 兩者效果一樣。
12 倘若:std::pair("sn002", 12.6); // 12.6's datatype is float
13 std::make_pair("sn002",12.6); // 12.6's datatype is double
14 使用:
15 std::pair m_paira;
16 m_paira = std::make_pair("sn001", 12.5);
17 std::cout小結:make_pair建立的是乙個pair物件。使用都很方便,針對成對出現的資料,如書的isbn對應乙個書名。
pair是單個資料對的操作,pair是一struct型別,有兩個成員變數,通過first,second來訪問,用的是「.」訪問。
map是乙個關聯容器,裡面存放的是鍵值對,容器中每一元素都是pair型別,通過map的insert()方法來插入元素(pair型別)。
C 中pair的使用方法
原 pair的型別 pair 是 一種模版型別。每個pair 可以儲存兩個值。這兩種值無限制。也可以將自己寫的struct的物件放進去。pair p pair p pair p 都可以。應用 如果乙個函式有兩個返回值 的話,如果是相同型別,就可以用陣列返回,如果是不同型別,就可以自己寫個struct...
c 中 pair 的 使用方法
pair的型別 pair 是 一種模版型別。每個pair 可以儲存兩個值。這兩種值無限制。也可以將自己寫的struct的物件放進去。pairp pairp pairp 都可以。應用 如果乙個函式有兩個返回值 的話,如果是相同型別,就可以用陣列返回,如果是不同型別,就可以自己寫個struct 但為了方...
c 中 pair 的 使用方法
pair的型別 pair 是 一種模版型別。每個pair 可以儲存兩個值。這兩種值無限制。也可以將自己寫的struct的物件放進去。pairp pairp pairp 都可以。應用 如果乙個函式有兩個返回值 的話,如果是相同型別,就可以用陣列返回,如果是不同型別,就可以自己寫個struct 但為了方...