C++ 如何操作QByteArray对象而不复制它? boolprocessdata(常量QByteArray&data) { qstringrefqf(数据); QList splitted=qf.slit(“,”) }
想想QByteArray中有一大块数据。我想做搜索,分析它,并将它的一小部分复制到QString。我如何在不复制的情况下执行此操作?根据: QByteArray可用于存储原始字节(包括“\0”)和 传统的以8位“\0”结尾的字符串。使用QByteArray非常有用 比使用const char*更方便。在幕后,它总是 确保数据后面跟有“\0”终止符,并使用 隐式共享(写时复制),以减少内存使用并避免 不必要的数据复制 因此,如果您真的不修改数据,就不必担心复制费用C++ 如何操作QByteArray对象而不复制它? boolprocessdata(常量QByteArray&data) { qstringrefqf(数据); QList splitted=qf.slit(“,”) },c++,qt,C++,Qt,想想QByteArray中有一大块数据。我想做搜索,分析它,并将它的一小部分复制到QString。我如何在不复制的情况下执行此操作?根据: QByteArray可用于存储原始字节(包括“\0”)和 传统的以8位“\0”结尾的字符串。使用QByteArray非常有用 比使用const char*更方便。在幕后,它总是 确保数据后面跟有“\0”终止符,并使用 隐式共享(写时复制),以减少内存使用并避免 不必要的数据复制 因此,如果您真的不修改数据,就不必担心复制费用 bool processData
bool processData(const QByteArray & data)
{
QStringRef qf(data);
QList<QStringRef> splitted = qf.slit(",")
}
实际上,有最多的“字符串”操作就像。因此,无需将其分配给or
bool processFundRankData(const QByteArray & data)
{
int firstIndexOfCR = data.indexOf(`\r`);
QByteArray firstFour = data.left(4);
}