C++ pair用法


Pair類型概述

pair是一種模板類型,其中包含兩個數據值,兩個數據的類型可以不同

1.定義(構造):

1 pair<int, double> p1; //使用默認構造函數 2 pair<int, double> p2(1, 2.4); //用給定值初始化 3 pair<int ,int > p1= make_pair(5,6); // 用make_pair構建對象 4 pair<int, double> p3(p2); //拷貝構造函數

 

如果有三個屬性的話,其實也是可以用的pair 的 ,極端的寫法 pair <int ,pair<int ,int > >。(后邊的兩個 > > 要有空格,否則就會是 >>  位移運算符)

 

(2)變量間賦值

1 pair<int, double> p1(1, 1.2); 2 pair<int, double> p2 = p1;
 
        
由於pair類型的使用比較繁瑣,因為如果要定義多個形同的pair類型的時候,可以時候typedef簡化聲明:
1 typedef pair<string, string> author; 2 author pro("May", "Lily"); 3 author joye("James", "Joyce");

 

(3)取得pair的值

 每個pair 都有兩個屬性值  first  和second

 

 cout<<p1.first<<p1.second;         注意是屬性值而不是方法。

(4)比較大小

  兩個pair對象之間的小於運算,其定義遵循字典次序:如果 
        p1.first < p2.first or !(p2.first < p1.first && p1.second < p2.second,則返回true
 

 

bool compare1 = p1 > p2;

 

 

  如果兩個pair對象的first和second依次相等,則這兩個對象相等。
(5)模板
 1 template <class T1, class T2> struct pair  2 {  3  typedef T1 first_type;  4  typedef T2 second_type;  5   
 6  T1 first;  7  T2 second;  8  pair() : first(T1()), second(T2()) {}  9   pair(const T1& x, const T2& y) : first(x), second(y) {} 10   template <class U, class V>  
11     pair (const pair<U,V> &p) : first(p.first), second(p.second) { } 12 } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM