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++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù)),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Linux UDP服務(wù)端和客戶端程序的實(shí)現(xiàn)
這篇文章主要介紹了Linux UDP服務(wù)端和客戶端程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
C語言使用鏈表實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言使用鏈表實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
C語言整數(shù)和浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)方法示例
在C語言中整形和浮點(diǎn)型數(shù)據(jù)的存儲(chǔ)方式有所不同,這篇文章主要介紹了C語言整數(shù)和浮點(diǎn)數(shù)在內(nèi)存中存儲(chǔ)方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-08-08
C++?STL容器詳解之紅黑樹部分模擬實(shí)現(xiàn)
本文主要對(duì)紅黑樹進(jìn)行了詳細(xì)介紹,并對(duì)其核心功能進(jìn)行了模擬實(shí)現(xiàn)。文中的代碼對(duì)我們的學(xué)習(xí)或工作有一定的價(jià)值,感興趣的小伙伴可以了解一下2021-12-12
C++中堆內(nèi)存和棧內(nèi)存區(qū)別小結(jié)
在C++中,堆和棧是兩種核心的內(nèi)存管理區(qū)域,用于存儲(chǔ)不同類型的數(shù)據(jù),它們?cè)诜峙浞绞?、生命周期、大小限制、性能等方面有顯著差異,下面就來介紹一下具體的差異2025-07-07

