【发布时间】:2015-04-07 08:41:49
【问题描述】:
这是我输入文件的一行格式:
人口|城市|州|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> >。关键是人口,其余的是向量。欢迎提出任何建议。
【问题讨论】:
-
你能展示你目前拥有的东西吗?
-
方法有很多。一种可能的方法:使用结构将
city、state和interstates保持在一起;使用map<int,vector<my_struct>>并在加载所有数据后,使用std::sort(begin,end,sort_function)对每个vector进行排序 -
@taoufik 谢谢你的建议!有效。我能够使用仿函数对我的向量进行排序。
标签: c++ sorting dictionary key-value