Throwing a runtime error seems like an absurd solution compared to changing the comparison operator or using an unordered_map
What's wrong with x.min < y.min || (x. min == y.min && x.max < y. max)
What's wrong with x.min < y.min || (x. min == y.min && x.max < y. max)