QbyteArray数据副本

bep*_*ras 5 qt qbytearray

我有两个QByteArray,sData而且dData.

我要复制n从位置字节xdData,即&dData[x]以位置ysData&sData[y].

在C中,数组副本由.完成 memcpy(&dData[x], &sData[y], n);

如何复制以上数据QByteArray在Qt中完成?

The*_*ght 5

Qt文档中,您可以使用replace函数:-

QByteArray & QByteArray::replace(int pos, int len, const QByteArray & after)
Run Code Online (Sandbox Code Playgroud)

将索引位置pos中的len个字节替换为之后的字节数组,并返回对此字节数组的引用。

因此,使用重载

QByteArray & QByteArray::replace(int pos, int len, const char * after);

sData = sData.replace(y, nBytes, dData.constData()+x);
Run Code Online (Sandbox Code Playgroud)


Mat*_*247 5

除了给定的答案,您还可以使用memcpyQByteArray::data()成员获取指向内部数组的指针.当然,您要负责的是目标数组的大小足以容纳源数组中的所有复制数据.

memcpy(dest.data() + y, src.constData() + x, n)
Run Code Online (Sandbox Code Playgroud)