C++语言基础 —— STL —— 容器与迭代器 —— pair
【概述】
pair 是定義在 <utility> 頭文件中的一個簡單的模板類,常用于表示一個二元組或元素對,且其提供了按照字典序?qū)υ貙M行大小比較的比較運算符模版函數(shù)。
定義:?pair<T1,T2> pairName
參數(shù):T1 是第一個值的數(shù)據(jù)類型,T2 是第二個值的數(shù)據(jù)類型。
【構(gòu)造與訪問】
- pair<T1,T2> p:構(gòu)造一個空 pair,其中無任何元素
- pair<T1,T2> p(elem1,elem2):構(gòu)造一個元素值分別為 elem1、elem2 的 pair
- pair<T1,T2> p1(p2):產(chǎn)生另一個同型 pair?的副本,所有元素都被復(fù)制
pair 的一對值可以具有不同的數(shù)據(jù)類型(T1 和 T2),兩個值可以分別通過其公有函數(shù) first、second 來進行訪問與賦值。
pair<int, string> p1; //默認構(gòu)造函數(shù) pair<string, double> p2("abc’", 100); //重載構(gòu)造函數(shù) pair<string, double> p3(p2); //復(fù)制構(gòu)造函數(shù)//訪問 cout << p2.first << " " << p2.second << endl; cout << p3.first << " " << p3.second << endl;使用技巧:由于 pair 類型比較繁瑣,若要定義多個 pair 類型時,可以使用 typedef 簡化聲明
typedef pair<string, string>?name; name name1("May", "Lily"); name name2("James", "Joyce");【賦值】
1.利用?make_pair() 函數(shù)來賦值
pair<int, double> p1; p1 = make_pair(1, 1.2);2.變量間賦值
pair<int, double> p1(1, 1.2); pair<int, double> p2 = p1;【運算符的重載】
在 <utility> 中,已經(jīng)定義了 pair 上的六個比較運算符:<、>、<=、>=、==、!=,其基本規(guī)則是先比較 first,當 first 相等時再比較 second,若想重定義自己的比較邏輯,可以通過重載運算符來重新指定比較邏輯。
pair<int, double> p1(1, 2.5); pair<int, double> p2(2, 2.5); pair<int, double> p3(2, 3.5);//結(jié)果:p1<p2 if(p1>=p2)cout<<"p1>=p2"<<endl; elsecout<<"p1<p2"<<endl;//結(jié)果:p2<p3 if(p2<p3)cout<<"p2<p3"<<endl; elsecout<<"p2>=p3"<<endl;【應(yīng)用】
pair 主要的作用是將兩個數(shù)據(jù)組合成一個數(shù)據(jù),兩個數(shù)據(jù)可以是同一類型或者不同類型。
其實質(zhì)上是一個結(jié)構(gòu)體,主要的兩個成員變量是 first 和 second,這兩個變量可以直接使用。
最常用的例子就是在構(gòu)建二維坐標系的點時,可以使用 pair 來構(gòu)造
?
?
總結(jié)
以上是生活随笔為你收集整理的C++语言基础 —— STL —— 容器与迭代器 —— pair的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 训练日志 2018.8.29
- 下一篇: C++ 通讯录管理系统实验报告