2013-02-22 14 views
12

Sulla base di un previous question, sto cercando di creare una mappa utilizzando una coppia di numeri interi come chiave cioè map<pair<int, int>, int> e ho trovato informazioni su come inserire:Utilizzando coppia di <int, int> come la chiave per la mappa

#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 
} 

ma non riesco ad accedere all'elemento! Ho provato cout << mymap[(1,2)] << endl; ma mostra un errore, e non riesco a trovare informazioni su come accedere all'elemento utilizzando la chiave. Sto facendo qualcosa di sbagliato?

+5

Vuoi dire 'Cout << mymap [make_pair (1,2)] << endl;'? – andre

+5

'(1,2)' non è sensoriale, almeno in questo contesto. Devi avere un 'std :: pair' da usare come chiave, e questo significa seguire ciò che @andre ha appena commentato. –

+0

Sì! Sono un idiota. Grazie! – sccs

risposta

10

è necessaria una coppia come chiave cout << mymap[make_pair(1,2)] << endl; Quello che attualmente è cout << mymap[(1,2)] << endl; non è la sintassi corretta.

6

mymap[make_pair(1,2)]

o, con il supporto del compilatore:

mymap[{1,2}]

Problemi correlati