definitely need a map because I want it sorted so I can do the lowerBound() trick to find the closest.