データ構造の他の実装を使用する必要があります。赤黒ツリーの実装は、あなたの場合には役に立ちません。
より一般的な観点から見ると、エントリを追加順にトラバースする場合、なぜマップを作成する必要があるのでしょうか? ペアのリスト/配列/ベクトルで十分ではありませんか?
編集: ヒント: 特定のデータ構造を使用することを選択するときはいつでも、サポートする必要がある操作を正確に自問してください。それに答えた後、あなたはより正確に選択できるはずです。キーで検索し、キーで挿入し、特定のキーが存在するかどうかを確認する必要がある場合は、マップが適しています。ただし、これらの操作を最適化する実装で支払う代償は、通常、要素の挿入順序を失うことです。
EDIT2 : ペアのリストをループ:
// pair is class in namespace std
vector<pair<string, string> > v;
v.push_back(make_pair("cutb", "a>1"));
v.push_back(make_pair("cuta", "b>3"));
v.push_back(make_pair("cutc", "c<5"));
for (int i = 0; i < v.size(); i++) {
// the first element of the pair is addressed with .first; the second - .second
cout << "For key " << v[i].first << " the value is " << v[i].second << endl;
}
ベクトルでの反復は反復子を使用して実行することもできますが、最適でありながら理解しやすいので、私はインデックス アプローチの方が好きです。