unordered_map of pair and int

C++
struct HASH{
  size_t operator()(const pair<int,int>&x)const{
    return hash<long long>()(((long long)x.first)^(((long long)x.second)<<32));
  }
};
unordered_map<pair<int,int>,int,HASH>mp;
//In Function pass it as

int foo(unordered_map<pair<int,int>,int,HASH> &mp);
Source

Also in C++: