Use map+list instead of multimap to ensure order in C++98