【问题标题】:QbyteArray data splitQbyteArray 数据拆分
【发布时间】:2019-06-10 04:40:55
【问题描述】:

我有一个大小为 n 的数组。我想用 y 的大小分割这个数组。它需要是大小为 y 的 x 倍 newarray。我需要像myarray[x][y] 这样的多维数组。输出需要为myarray[0][0...y],myarray[1][0...y],....myarray[x][0...y]。如何在 qt(使用QList<QByteArray> myarray)或其他解决方案中做到这一点? 例如

    for (int i = 0; i < y; i++)
    {
        myarray[i] = array[i];
    }

【问题讨论】:

  • 您知道如何将普通的一维数组转换为二维数组吗?
  • 不,怎么在qt中做到这一点?我可以在 qt 中创建一个数组为 myarray[x][y] 吗?
  • 我的意思是,如果您知道如何将普通的一维数组转换为二维数组,您能否将其应用于 QList 数组?

标签: c++ qt split qlist qbytearray


【解决方案1】:

如何在 qt 中做到这一点(通过使用 QList myarray)

重用你的名字(myarray 用于 QList 不是很直观)

#include <QList>
#include <QByteArray>
#include <iostream>

void split(const QByteArray & a, 
           QList<QByteArray> & l,
           int n)
{  
  for (int i = 0; i < a.size(); i += n)
    l.push_back(a.mid(i, n));
}

int main()
{
  QByteArray array("azertyuiop");
  QList<QByteArray> myarray;

  split(array, myarray, 3);

  for (QList<QByteArray>::const_iterator itl = myarray.constBegin();
       itl != myarray.constEnd();
       ++itl) {
    const QByteArray & a = *itl;

    for (QByteArray::const_iterator ita = a.constBegin();
       ita != a.constEnd();
       ++ita) {
      std::cout << *ita << ' ';
    }
    std::cout << std::endl;
  }

  return 0;
}

执行结果:

a z e 
r t y 
u i o 
p 

【讨论】:

    猜你喜欢
    • 2016-08-23
    • 2014-05-11
    • 2013-07-09
    • 2014-01-13
    • 2014-04-28
    • 2012-12-28
    • 2013-02-05
    • 2020-02-23
    • 2016-08-30
    相关资源
    最近更新 更多