アルゴリズムのメモ - 標準テンプレートライブラリのSTL - ペア

ペアの一般的な使用

それは、複合要素として一緒に2つの要素を結び付けることが望まれる場合、「ガジェット」の非常に便利なペアであるため、構造体の定義は、簡単に代用としてペアを使用することができますしたくありません。すなわち、一対の内部構造の2つの要素とみなすことができるされ、要素のこれらの2つのタイプは、以下のショートコードとして指定することができます。

struct pair{
    typeName1 first;
    typeName2 second;
}

の定義された組

ヘッダ

#include<utility>	 
using namespace std;

ペアを実現するためにマップを使用しているとき、そう覚えているのでutility、あなたはマップのヘッダファイルを使用することができます

定義

pair<typeName1, typeName2> name;

pair<string, int> p;

あなたがペアを定義する際に初期化したい場合は、ほんの少しの括弧に追いつくために

pair<string, int> p("gqq", 5);

あなたは、コードで構築したい場合は临时的ペア2つの方法があります。

  1. 続いて2つの素子タイプ定義編集括弧の実施形態、
pair<string, int>("gqq", 5);
  1. 独自のを使用してくださいmake_pair函数
make_pair("gqq", 5);

要素のアクセスのペア

それぞれの対における2つだけの要素は、第一及び第二は、専用アクセスに通常設置構造を必要とします

#include<iostream>
#include<utility>
#include<string>
using namespace std;

int main(){
    pair<string, int> p;
    p.first = "zgq";
    p.second = 5;
    cout << p.first << " " << p.second << endl;
    p = make_pair("yzy", 55);
    cout << p.first << " " << p.second << endl;
    p = pair<string, int>("wjy", 555);
    cout << p.first << " " << p.second << endl;
    return 0;
}
zgq 5
yzy 55
wjy 555

一般的に使用される機能をペアリング

オペランドの比較

データ対の2つのタイプが直接ことができる==、!=、<、<=、>、>=サイズの比較ルールは、比較第一サイズは第二場合裁判官に等しい場合にのみ、標準として第1サイズが第一

#include<iostream>
#include<utility>
#include<string>
using namespace std;

int main(){
    pair<int, int> p1(5, 10);
    pair<int, int> p2(5, 15);
    pair<int, int> p3(10, 5);
    if(p1 < p3) printf("p1 < p3\n");
    if(p1 <= p3) printf("p1 <= p3\n");
    if(p1 < p2) printf("p1 < p2\n");
    return 0;
}
p1 < p3
p1 <= p3
p1 < p2

の一般的な用途のペア

  1. 二重構造部材とコンストラクタの代わりに使用、それはコーディングの時間を節約することができます
  2. マップのキーとして挿入します
#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
    map<string, int> mp;
    mp.insert(make_pair("gqq", 5));
    mp.insert(pair<string, int>("yzy", 10));
    for(map<string, int>::iterator it = mp.begin(); it != mp.end(); it++){
        cout << it -> first << " " << it -> second << endl;

    }
    return 0;
}
gqq 5
yzy 10

Gqqによる書き込み

おすすめ

転載: www.cnblogs.com/zgqcn/p/12590908.html