这是我的输入文件行的格式:
人口|城市|州| ListOfHighways ==>
6|Oklahoma City|Oklahoma|I-35;I-44;I-40
6|Boston|Massachusetts|I-90;I-93
8|Columbus|Ohio|I-70;I-71
我需要使用以下格式创建输出文件:
Population
(newline)
City, State
Interstates: Comma-separated list of interstates, sorted by interstate number ascending
(newline)
==>例如:
6
Boston, Massachusetts
Interstates: I-90, I-93
Oklahoma City, Oklahoma
Interstates: I-35, I-40, I-44
8
Columbus, Ohio
Interstates: I-70, I-71
这里,具有相同人口的州应该组合在一起,并且必须按州按字母顺序排序,然后按城市排序。我能够正确地获得格式,但是我无法确定使用哪种数据结构对状态进行排序,然后对城市进行排序。
我现在有map<int, vector<string> >
。关键是人口,其余是向量。欢迎任何建议。
答案 0 :(得分:0)
我根本不会使用地图。您应该找出数据的每个元素实际需要的信息,并创建支持该数据所需的任何数据类型。 E.g。
struct State
{
unsigned int Population;
std::vector<std::string> Cities;
std::vector<unsigned int> Highways;
};
然后,您可以解析数据,并创建std::vector<State>
。使用std :: sort对矢量和数据进行排序(可以使用lambdas,或者根据需要创建比较函数或函子)。