2

我想使用类似于 std::sort() 的东西对作为(dicts)数组的 Json::Value 进行排序,但是在尝试像这样创建自定义排序函数时出现错误:

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 数组进行排序?

4

1 回答 1

0

我选择的解决方案是创建一个新的空向量,然后遍历 Json 数组,将每个元素插入到向量中。然后我使用上述问题中的 sort_json_array() 对向量进行 std::sort() 处理(除了我将其更改为采用 Jarod42 建议的 const 引用)。感谢各位的帮助!

于 2014-07-12T02:28:08.917 回答