2013-02-22 12 views
12

oparta na previous question, staram się stworzyć mapę przy użyciu parę liczb jako klucz tj map<pair<int, int>, int> i znalazłem informacje na temat jak wstawić:Korzystanie parę <int, int> jako klucz do mapy

#include <iostream> 
#include <map> 

using namespace std; 

int main() 
{ 
map<pair<int, int>, int> mymap; 

mymap.insert(make_pair(make_pair(1,2), 3)); //edited 
} 

ale nie mogę uzyskać dostępu do elementu! Próbowałem już cout << mymap[(1,2)] << endl;, ale pokazuje błąd i nie mogę znaleźć informacji o tym, jak uzyskać dostęp do elementu za pomocą klucza. czy robię coś źle?

+5

Czy to znaczy 'cout << MyMap [make_pair (1,2)] << endl;'? – andre

+5

'(1,2)' jest bezsensowne, przynajmniej w tym kontekście. Musisz mieć 'std :: pair', który będzie używany jako klucz, a to oznacza, po co @ komentarz tylko. –

+0

Tak! Jestem laleczką. Dzięki! – sccs

Odpowiedz

10

potrzebujesz pary jako klucza cout << mymap[make_pair(1,2)] << endl; To, co aktualnie masz cout << mymap[(1,2)] << endl;, nie jest poprawną składnią.

6

mymap[make_pair(1,2)]

lub przy wsparciu kompilatora:

mymap[{1,2}]

Powiązane problemy