ordered set in cpp