将 Vector 转换为 QJsonArray 的最快方法?

Fastest way to convert Vector to QJsonArray?

目前,我正在迭代一个向量,以便将其转换为 QJsonArray:

QJsonArray toJson(const std::vector<unsigned short>& myVec) {
    QJsonArray result;
    for(auto i = myVec.begin(); i != myVec.end(); i++) {
        result.push_back((*i));
    }
    return result;
}

但是,这会导致我的程序出现小的滞后峰值。是否有替代方法来接收带有向量数据的 QJsonArray? (不需要是深拷贝。)

恐怕没有比您设计的方法更快的方法了。 QJsonArrayQJsonValue 个值组成,可以封装不同类型的原生值:NullBoolDoubleString、... , Undefined。但是 std::vector 只包含一种类型的值。因此,向量的每个值都应单独转换为 QJsonValue,并且没有像 memcopy.

这样更快的方法

无论如何你都可以缩短你的功能。

QJsonArray toJson(const std::vector<unsigned short>& myVec) {
    QJsonArray result;
    std::copy (myVec.begin(), myVec.end(), std::back_inserter(result));
    return result;
}