使用带Qt的QVector创建两个维度的QString数组

时间:2016-08-17 20:23:24

标签: c++ arrays qt qstring qvector

我想列出一些QString字样,但我不知道该怎么做。 我试过像这样的Vector:

int i = 10;
int j = 10;
QVector < QVector < QString> > tableau;
QString word = "Word";
tableau[i][j] = word;

但那不起作用。 这是错误消息:

ASSERT failure in QVector<T>::operator[]: "index out of range"

啊我试过std :: vector和std :: string但是这个没有用到

那么你能解释一下如何创建一个包含两个维度的字符串数组来放置单词 谢谢

1 个答案:

答案 0 :(得分:1)

假设您正在尝试创建一个表(QVector<QVector<T>>不是最佳选择),您应该首先对其进行初始化。

类似的东西:

QVector<QVector<QString>> CreateTableau(int sizeX, int sizeY)
{
   QVector<QVector<QString>> result;
   for (int idx1 = 0; idx1 < sizeX; idx1++)
   {
      result.append(QVector<QString>());
      for (int idx2 = 0; idx2 < sizeY; idx2++)
      {
         result[idx1].append(QString());
      } 
   }
   return result;
}

然后你称之为:

int i = 10;
int j = 10;
QVector<QVector<QString>> tableau = CreateTableau(100, 100); //TODO: replace with appropriate sizes.
QString word = "Word";
tableau[i][j] = word;