web-dev-qa-db-fra.com

Utilisation de la paire <int, int> comme clé pour la carte

Sur la base d'un question précédente , j'essaie de créer une carte en utilisant une paire d'entiers comme clé, c'est-à-dire map<pair<int, int>, int> Et j'ai trouvé des informations sur la façon d'insérer:

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

mais je n'arrive pas à accéder à l'élément! J'ai essayé cout << mymap[(1,2)] << endl; mais cela montre une erreur et je ne trouve pas d'informations sur la façon d'accéder à l'élément à l'aide de la clé. Est-ce que je fais quelque chose de mal?

18
sccs

vous avez besoin d'une paire comme clé cout << mymap[make_pair(1,2)] << endl; Ce que vous avez actuellement cout << mymap[(1,2)] << endl; n'est pas la syntaxe correcte.

13
andre

mymap[make_pair(1,2)]

ou, avec le support du compilateur:

mymap[{1,2}]

8
Louis Brandy

Veuillez trouver le code pour la référence:

#include<iostream>
#include<map>
using namespace std;


int main()
{

   map<pair<int ,int> ,int > m;
   m.insert({{1, 2}, 100});
   cout << m[{1, 2}];
}
0
Chandra Shekhar