JsonCpp如何对Json::值进行std::排序

JsonCpp how to std::sort a Json::Value that is an array

本文关键字:std 排序 JsonCpp Json      更新时间:2023-10-16

我想排序Json::值是一个数组(字典)使用类似的东西std::sort(),但我得到错误时,试图使自定义排序函数像这样:

bool sort_json_array(Json::Value a, Json::Value b)
{
    return a["some_double_member"].asDouble() > b["some_double_member"].asDouble();
}

我调用std::sort如下:

std::sort(json_array.begin(), json_array.end(), sort_json_array);

但是这给出了一些我不理解的错误,都类似于:

no match for ‘operator-’ (operand types are ‘Json::ValueIterator’ and ‘int’)

我如何排序Json数组?

我选择的解决方案是创建一个新的空向量,然后遍历Json数组,将每个元素插入向量中。然后我std::sort()使用上面问题中的sort_json_array()对向量进行排序(除了按照Jarod42的建议将其更改为接受const引用)。谢谢大家的帮助!