web-dev-qa-db-ja.com

マップのキーとしてpair <int、int>を使用する

前の質問 に基づいて、整数のペアをキーとして使用してマップを作成しようとしています(つまり、_map<pair<int, int>, int>_)。

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

要素にアクセスできないようです。 cout << mymap[(1,2)] << endl;を試しましたが、エラーが表示され、キーを使用して要素にアクセスする方法に関する情報が見つかりません。私は何か間違ったことをしていますか?

18
sccs

キーとしてペアが必要ですcout << mymap[make_pair(1,2)] << endl;現在持っているものcout << mymap[(1,2)] << endl;は正しい構文ではありません。

13
andre

mymap[make_pair(1,2)]

または、コンパイラのサポートあり:

mymap[{1,2}]

8
Louis Brandy

参照用のコードを見つけてください:

#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