std::equal_to is a function-object template that compares two values by calling operator==. In std::unordered_map, it is the default KeyEqual type used alongside std::hash to decide whether keys are equal, including after a hash collision. section 8.2.1
Comparing tuple keys
For two equal std::tuple values, bool match = std::equal_to{}.operator()(t1, t2); performs the same comparison as bool match = t1 == t2;. A tuple therefore works as an unordered-map key when a suitable hash is also provided. section 8.2.1
