gpt4 book ai didi

qt - 如何有效地对 QByteArray 进行分区?

转载 作者:行者123 更新时间:2023-12-02 05:21:13 24 4
gpt4 key购买 nike

我想有效地划分 QByteArray 消息,因此我实现的这个函数采用字节(我想要提取的部分)和 toEnd 标志,该标志告诉我是否要提取第 1 部分直到数组末尾。我的直径是 spcae ' '

如果我有的话示例:

ba = "HELLO HOW ARE YOU?"
ba1 = getPart(ba, 1, false) -> ba1 = "HELLO"
ba2 = getPart(ba, 2, true) -> ba2 = "HOW ARE YOU?"
ba3 = getPart(ba, 3, false) -> ba3 = "ARE"

下面的函数工作得很好,但我想知道这是否有效。我应该考虑使用 split 函数吗?

QByteArray Server::getPart(const QByteArray message, int part, bool toEnd)
{
QByteArray string;
int startsFrom = 0;
int endsAt = 0;
int count = 0;
for(int i = 0; i < message.size(); i++)
{
if(message.at(i) == ' ')
{
count++;
if(part == count)
{
endsAt = i;
break;
}
string.clear();
startsFrom = i + 1;
}
string.append(message.at(i));
}
if(toEnd)
{
for(int i = endsAt; i < message.size(); i++)
{
string.append(message.at(i));
}
}
return string;
}

最佳答案

这个怎么样:

  QByteArray Server::getPart(const QByteArray& message, int part, bool toEnd)
{
int characters(toEnd ? -1 : message.indexOf(' ', part) - part);

return message.mid(part, characters);
}

关于qt - 如何有效地对 QByteArray 进行分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5978124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com