談?wù)凜++學(xué)習(xí)之Pair的使用方法
一、Pair類型概述
pair是一種模板類型,其中包含兩個(gè)數(shù)據(jù)值,兩個(gè)數(shù)據(jù)的類型可以不同,基本的定義如下:
pair<int, string> a;
表示a中有兩個(gè)類型,第一個(gè)元素是int型的,第二個(gè)元素是string類型的,如果創(chuàng)建pair的時(shí)候沒有對其進(jìn)行初始化,則調(diào)用默認(rèn)構(gòu)造函數(shù)對其初始化。
pair<string, string> a("James", "Joy");
也可以像上面一樣在定義的時(shí)候直接對其初始化。
由于pair類型的使用比較繁瑣,因?yàn)槿绻x多個(gè)形同的pair類型的時(shí)候,可以時(shí)候typedef簡化聲明:
typedef pair<string, string> author; author pro("May", "Lily"); author joye("James", "Joyce");
二、Pair對象的操作
1、對于pair類,由于它只有兩個(gè)元素,分別名為first和second,因此直接使用普通的點(diǎn)操作符即可訪問其成員
pair<string, string> a("Lily", "Poly"); string name; name = pair.second;
2、生成新的pair對象
可以使用make_pair對已存在的兩個(gè)數(shù)據(jù)構(gòu)造一個(gè)新的pair類型:
int a = 8; string m = "James"; pair<int, string> newone; newone = make_pair(a, m);
三、編程實(shí)踐
練習(xí):編寫程序讀入一系列string和int型數(shù)據(jù),將每一組存儲在一個(gè)pair對象中,然后將這些pair對象存儲在vector容器
#include<iostream> #include<string> #include<vector> #include<utility> using namespace std; int main() { pair<string, int>p; typedef vector< pair<string, int> > VP; VP vp; while(cin>>p.first>>p.second) { vp.push_back(make_pair(p.first,p.second)); } VP::iterator it; for(it=vp.begin(); it!=vp.end(); it++) cout<<it->first<<","<<it->second<<endl; return 0; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用C語言實(shí)現(xiàn)將格式化數(shù)據(jù)和字符串相互轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了2個(gè)函數(shù),分別是sprintf和sscanf,可以用來實(shí)現(xiàn)將格式化數(shù)據(jù)和字符串相互轉(zhuǎn)換,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03利用C++實(shí)現(xiàn)從std::string類型到bool型的轉(zhuǎn)換
利用C++實(shí)現(xiàn)從std::string類型到bool型的轉(zhuǎn)換。需要的朋友可以過來參考下。希望對大家有所幫助2013-10-10C++用一棵紅黑樹同時(shí)封裝出set與map的實(shí)現(xiàn)代碼
set中存儲的一般為鍵K即可,而map存儲的一般都是鍵值對KV,也就是說他們結(jié)構(gòu)是不同的,那么我們?nèi)绾尾拍苡靡活w紅黑樹同時(shí)封裝出set與map兩種容器呢,那么接下來我們具體地來研究下STL庫中是怎樣實(shí)現(xiàn)的,并且進(jìn)行模擬實(shí)現(xiàn),需要的朋友可以參考下2024-03-03關(guān)于python調(diào)用c++動態(tài)庫dll時(shí)的參數(shù)傳遞問題
這篇文章主要介紹了python調(diào)用c++動態(tài)庫dll時(shí)的參數(shù)傳遞,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04C語言實(shí)現(xiàn)通訊錄的八種功能(添加、刪除、查找、修改、顯示、排序、退出、清空)
本文主要介紹了C語言實(shí)現(xiàn)通訊錄的八種功能,主要包括添加、刪除、查找、修改、顯示、排序、退出、清空,感興趣的可以了解一下2023-09-09