Альтернативное решение Эндрю Штейна, которое лучше подходит для остальных STL, - просто использовать
typedef std::map<std::pair<int, int>, int > AMapT;
AMapT mymap;
mymap[std::make_pair(2, 4)] = 10;
...
AMapT::iterator f = mymap.find(std::make_pair(3, 5));
Например, таким образом вам не нужно связывать два вызова с map::find
для поиска одного значения.