mapクラスのfindメンバ関数やbeginメンバ関数はオブジェクトの反復子を取得できます。
mapクラスの反復子はpairクラスのオブジェクトを指すことは前章ですでに解説しました。
今回も簡単なサンプルを作ってみます。
商品名と定価を入力して、入力が終わるとこれらを表示するというプログラムです。
// map04.cpp #include <iostream> #include <string> #include <map> using namespace std; int main() { string nm; int teika, i, n; map<string, int> m; map<string, int>::iterator itr; while (1) { cout << "商品名(eで終了)--- "; cin >> nm; if (nm == "e") break; cout << "定価 ---"; cin >> teika; m[nm] = teika; } itr = m.begin(); n = (int)m.size(); for (i = 0; i < n; i++) { cout << itr->first << "....." << itr->second << "円" << endl; itr++; } return 0; }map<string, int> m;
でitrはmapクラスの反復子となります。
itr = m.begin();
でitrはmapクラスの最初の要素を指します。
itr->first
で、最初のpairクラスのfirstメンバ(キー)となります。
itr->second
で最初のpairクラスのsecondメンバ(定価)となります。
あとは、反復子を1つずつ進めていけばよいですね。
Update Jun/02/2003 By Y.Kumei