C++中的pair
pair的類型:
pair 是 一種模版類型。每個pair 可以存儲兩個值。這兩種值無限制。也可以將自己寫的struct的對象放進去。。
pair<string,int> p;
pair<int ,int > p;
pair<double,int> p;
都可以。。。
應用:如果一個函數有兩個返回值 的話,如果是相同類型,就可以用數組返回,如果是不同類型,就可以自己寫個struct ,但為了方便就可以使用 c++ 自帶的pair ,返回一個pair,其中帶有兩個值。除了返回值的應用,在一個對象有多個屬性的時候 ,一般自己寫一個struct ,如果就是兩個屬性的話,就可以用pair 進行操作。。。
應用pair 可以省的自己寫一個struct 。。。如果有三個屬性的話,其實也是可以用的pair 的 ,極端的寫法 pair <int ,pair<int ,int > >
寫法極端。(後邊的兩個 > > 要有空格,否則就會是 >> 位移運算符)
makr_pair:
pair<int ,int >p (5,6);
pair<int ,int > p1= make_pair(5,6);
pair<string,double> p2 ("aa",5.0);
pair <string ,double> p3 = make_pair("aa",5.0);
有這兩種寫法來生成一個pair。
如何取得pair的值呢。。
每個pair 都有兩個屬性值 first 和second
cout<<p1.first<<p1.second;
註意是屬性值而不是方法。
[cpp] view plain copy
- template <class T1, class T2> struct pair
- {
- typedef T1 first_type;
- typedef T2 second_type;
- T1 first;
- T2 second;
- pair() : first(T1()), second(T2()) {}
- pair(const T1& x, const T2& y) : first(x), second(y) {}
- template <class U, class V>
- pair (const pair<U,V> &p) : first(p.first), second(p.second) { }
- }
(補充:以下是網上搜的)
由於pair類型的使用比較繁瑣,因為如果要定義多個形同的pair類型的時候,可以時候typedef簡化聲明:
typedef pair<string, string> author;
author pro("May", "Lily");
author joye("James", "Joyce");
C++中的pair