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