C++中pair使用的示例代碼
一、pair的介紹
pair是一個(gè)很實(shí)用的"小玩意",當(dāng)想要將兩個(gè)元素綁在一起作為一個(gè)合成元素,又不想因此定義結(jié)構(gòu)體時(shí),使用pair可以很方便地作為一個(gè)替代品。
也就是說,pair實(shí)際上可以看作一個(gè)內(nèi)部有兩個(gè)元素的結(jié)構(gòu)體,且這兩個(gè)元素的類型是可以指定的,如下:
struct pair { typeName1 first; typeName2 second; };
二、pair的定義
要使用pair,應(yīng)先添加頭文件#include<utility>,并在頭文件下面加上"using namespace std",然后就可以使用了。
注意:由于map的內(nèi)部實(shí)現(xiàn)中涉及pair,因此添加map頭文件時(shí)會(huì)自動(dòng)添加utility頭文件,此時(shí)如果需要使用pair,就不需要額外再去添加utility頭文件了。
//pair有兩個(gè)參數(shù),分別對(duì)應(yīng)first和second的數(shù)據(jù)類型,他們可以是任意基本數(shù)據(jù)類型或容器。 pair<typeName1,typeName2>name; //想要定義參數(shù)為string和int類型的pair,如下: pair<string,int>p; //如果想在定義pair時(shí)進(jìn)行初始化,只需要跟上一個(gè)小括號(hào),里面填寫兩個(gè)想要初始化的元素即可; pair<string,int>p("haha",5);
//如果想要在代碼中臨時(shí)構(gòu)建一個(gè)pair,有如下兩種方法: /* (1)將類型定義寫在前面,后面用小括號(hào)內(nèi)兩個(gè)元素的方式。 */ pair<string,int>("haha",5); /* (2)使用自帶的make_pair函數(shù) */ make_pair("haha",5);
三、pair中元素的訪問
pair中只有兩個(gè)元素,分別是first和second,只需要按正常結(jié)構(gòu)體的方式去訪問即可
#include<bits/stdc++.h> using namespace std; int main() { pair<string,int>p; p.first="haha"; p.second=5; cout<<p.first<<" "<<p.second<<endl; p=make_pair("xixi",55); cout<<p.first<<" "<<p.second<<endl; p=pair<string,int>("heihei",555); cout<<p.first<<" "<<p.second<<endl; }
四、pair常用函數(shù)實(shí)例解析
(1)比較函數(shù)
兩個(gè)pair類型數(shù)據(jù)可以直接使用關(guān)系運(yùn)算符比較大小,
比較規(guī)則是先以first的大小作為標(biāo)準(zhǔn),只有first相等采取判斷second的大小
#include<bits/stdc++.h> using namespace std; int main() { pair<int,int>p1(5,10); pair<int,int>p2(5,15); pair<int,int>p3(10,5); if(p1<p3) printf("p1<p3\n"); if(p1<=p3) printf("p1<=p3\n"); if(p1<p2) printf("p1<p2\n"); return 0; }
pair的常見用途
關(guān)于pair有兩個(gè)比較常見的例子:
(1)用來代替二元結(jié)構(gòu)體及其構(gòu)造函數(shù),可以節(jié)省編碼空間
(2)作為map的鍵值對(duì)來進(jìn)行插入,如下
#include<bits/stdc++.h> using namespace std; int main() { map<string,int>mp; mp.insert(make_pair("hah",5)); mp.insert(pair<string,int>("heihei",10)); for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++) cout<<it->first<<" "<<it->second<<endl; return 0; }
到此這篇關(guān)于C++中pair使用的示例代碼的文章就介紹到這了,更多相關(guān)C++ pair使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言中使用lex統(tǒng)計(jì)文本文件字符數(shù)
這篇文章主要介紹了C語言中使用lex統(tǒng)計(jì)文本文件字符數(shù),本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04C++實(shí)現(xiàn)基于靜態(tài)數(shù)組的順序表
這篇文章主要介紹了C++實(shí)現(xiàn)基于靜態(tài)數(shù)組的順序表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05C++ min/max_element 函數(shù)用法詳解
這篇文章主要介紹了C++ min/max_element 函數(shù)用法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02