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;
6int 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 pairobject.
03 template
04 pair make_pair(t1 x, t2y)
05 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::pairm_paira;
16 m_paira =std::make_pair("sn001", 12.5);
17 std::cout<18 結合map的簡單使用:
19 std::pairm_paira;
20 m_paira =std::make_pair("sn001", 12.5);
21 //std::cout<22 std::mapm_mapa;
23 m_mapa.insert(m_paira);
24 std::map::iterator iter =m_mapa.begin();
25 std::coutmake_pair建立的是乙個pair物件。使用都很方便,針對成對出現的資料,如書的isbn對應乙個書名。
pair是單個資料對的操作,pair是一struct型別,有兩個成員變數,通過first,second來訪問,用的是「.」訪問。
map是乙個關聯容器,裡面存放的是鍵值對,容器中每一元素都是pair型別,通過map的insert()方法來插入元素(pair型別)。
C 中的pair,make pair學習
std pair主要的作用是將兩個資料組合成乙個資料,兩個資料可以是同一型別或者不同型別。例如std pair或者std pair等。pair實質上是乙個結構體,其主要的兩個成員變數是first和second,這兩個變數可以直接使用。初始化乙個pair可以使用建構函式,也可以使用std make p...
C 中的long與C 中的long
微軟很厲害,c 是非常優秀的計算機語言,c 比c 還厲害,c c 本身不就包含四個 號嗎?而微軟發明了c c 中的long比c 中的long要long兩倍!不信你看 我正在使用.net寫乙個預約排隊的程式,因為一前通過vc編寫了乙個用於顯示登記資訊的控制項,現在使用c 重新預約程式,則必然要呼叫vc...
c中的const與c 中的const
c中的const是乙個偽唯讀識別符號。include include int main 此時輸出a的值為20,被指標間接的改變了。c 中,const進行了增強,不在是乙個偽識別符號了。const int a 10 int p int a p 20 cout a p endl cout a endl ...