2012-03-08 17 views
1

だから私は持って言うことができます:map<pair<int, MyEnum>, string> myMap;ペアをキーとしてマップから値を取得するにはどうすればよいですか?

と私はキー値を追加:マップがmap<int, string>だったと私はmyMap[1] = "something";

を持っていた場合ので、私は「何かを」の値を取得する方法

myMap[make_pair(1, MyEnum::first)] = "something";

私は同じようにstring s = myMap[1]

+0

なぜキーはペアですか?あなたは相手側でペアを使用できませんか?キーを1のままにして、** MyEnum :: firstと「something」**をデータとして使用します。 – DumbCoder

+0

キーで何かを見つけるにはキーが必要です。あなたが何かを探すために列挙型の値を供給しなければならない場合、それはキーの一部であってはなりません。 Nawazの答えに対する私のコメントを見てください。あなたが本当に 'map >'のように見えます。 –

答えて

4

を言うだろう3210
std::cout << myMap[make_pair(1, MyEnum::first)] << std::endl; 

出力:

something 

お役に立てば幸いです。

+2

正確に。 OPが 'int 'を参照したい場合、' int'をキーにして* value * 'pair 'を作ったはずです。キーは基本的に "あなたが値を見つけるために与えたいものは何でも"です。値は「あなたがキーで探したいものは何でも」です。列挙型を見つけるのではなく、その列挙型を見つけたい場合は、値の一部にする必要があります。 –

0
string s = myMap[make_pair(1, MyEnum::first)]; 
関連する問題