1. 程式人生 > >C++中的pair

C++中的pair

pop 兩種 操作 string 存儲 details james toc get

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
  1. template <class T1, class T2> struct pair
  2. {
  3. typedef T1 first_type;
  4. typedef T2 second_type;
  5. T1 first;
  6. T2 second;
  7. pair() : first(T1()), second(T2()) {}
  8. pair(const T1& x, const T2& y) : first(x), second(y) {}
  9. template <class U, class V>
  10. pair (const pair<U,V> &p) : first(p.first), second(p.second) { }
  11. }

(補充:以下是網上搜的)

由於pair類型的使用比較繁瑣,因為如果要定義多個形同的pair類型的時候,可以時候typedef簡化聲明:

typedef pair<string, string> author;

author pro("May", "Lily");

author joye("James", "Joyce");

C++中的pair