第70章 mapクラスからデータを検索する


前章ではmapクラスにデータを追加しましたが、キーからデータを 検索するにはどうしたらよいでしょうか。



これには、findメンバ関数を使います。

map mymap;
.....
mymap.find(キー)でキーを持つオブジェクトの反復子を取得できます。 mapクラスの反復子はpairクラスのオブジェクトを指します。

従って

mymap.find(キー)->second

はこのキーを持つオブジェクトのデータを表します。

ちょっと煩わしいのですがサンプルを見てみましょう。

// map03.cpp

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main()
{
    string nm, js;

    map<string, string> m;
    pair<string, string> p;

    p.first = "粂井";
    p.second = "旭川市猫町10丁目";

    m.insert(p);

    p.first = "田中";
    p.second = "東京都港区";

    m.insert(p);

    p.first = "太田";
    p.second = "札幌市犬町通り"; 

    m.insert(p);

    while (1) {
        cout << "氏名==";
        cin >> nm;
        if (nm == "e")
            break;
        js = (m.find(nm))->second;
        if (js == "") {
            cout << "存在しません" << endl;
            continue;
        }
        cout << "住所==" << m.find(nm)->second << endl;
    }
    return 0;
}
今回は簡単でした。
[C++Index] [総合Index] [Previous Chapter] [Next Chapter]

Update May/30/2003 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。