目前,我正在遍历 vector ,以将其转换为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;
}
但是,这会导致我的程序中出现小的延迟尖峰。是否有其他方法可以从 vector 中接收带有数据的QJsonArray? (它不必是深拷贝。)
最佳答案
恐怕没有比您设计的方法更快的方法了。 QJsonArray
由QJsonValue
值组成,可以封装不同类型的本机值:Null
,Bool
,Double
,String
,...,Undefined
。但是std::vector
由一种唯一类型的值组成。因此, 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;
}