我正在尝试按第二个浮点数(在pair<float,float>
中)对地图列表进行排序,如下所示:
list<map<string, pair<float, float>>>
有人可以帮我吗...
到目前为止,我已经尝试过:
void my_sort(list<map<string, pair<float, float>>> ans)
{
for (int i = 1; i < ans.size(); i++)
{
for (list<map<string, pair<float, float>>>::iterator j = ans.begin(); j < ans.end; j++)
{
if(j->)
}
}
}
有人可以帮我吗...
答案 0 :(得分:1)
您不清楚如何比较两张地图,但是一旦弄清楚了,您就可以使用自定义小于运算符执行自定义排序,如下所示:
struct less_than_key
{
inline bool operator() (map<string, pair<float, float>> &map1, map<string, pair<float, float>> &map2)
{
// Here you need to figure out what makes one map 'less than' the other
// If if a specific key's value.second is < the same in the other map, for example.
return map1IsLessThanMap2;
}
};
std::sort(yourList.begin(), yourList.end(), less_than_key());