データをまとめて扱うときvectorクラスを使うと便利でした。これと似たものに
mapクラスがあります。データとキーをペアにして取り扱います。
mapクラスを使うにはmapライブラリをインクルードします。
mapクラスのオブジェクトを宣言するには
map<キーのデータ型, データのデータ型>x;というような感じで宣言します。
これにデータを追加する方法はいろいろありますが、一番簡単な方法は
map<string, string>x; x["cat"] = "タマ";というように追加していく方法です。この時"cat"がキー、"タマ"がデータとなります。
データにアクセスするには
x[キー]とすればよいですね。雰囲気的にはPerlのハッシュに似ていますね。
では、サンプルを見てみましょう。
// map01.cpp
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
map<string, string> mymap;
map<char *, int> yourmap;
mymap["0166-23-4567"] = "粂井";
mymap["011-123-4568"] = "田中";
cout << "0166-23-4567 -- " << mymap["0166-23-4567"] << endl;
cout << "011-123-4568 -- " << mymap["011-123-4568"] << endl;
//わざとに存在しないキーを指定する
cout << "x -- " << mymap["x"] << endl;
yourmap["ラーメン"] = 600;
yourmap["うどん"] = 500;
cout << "うどん--" << yourmap["うどん"] << "円" << endl;
cout << "ラーメン--" << yourmap["ラーメン"] << "円" << endl;
cout << "うどんとラーメン--" << yourmap["うどん"] + yourmap["ラーメン"] << "円" << endl;
return 0;
}
実行結果は次のようになります。
わざとに存在しないキーを指定した場合は何も表示されません。
Update Mar/01/2003 By Y.Kumei