2016-08-17 1 views
0

Je veux mettre en tableau certains mots QString mais je ne sais pas comment puis-je faire. j'essayer avec Vector comme ceci:Créer QString tableau de deux dimensions avec QVector avec Qt

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

Mais cela ne fonctionne pas. Tel est le message d'erreur:

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

Ah ont essayer avec std :: vecteur et std :: string, mais cela ne fonctionne pas à

Pouvez-vous me expliquer comment créer un tableau de chaînes de deux dimensions pour mettre le mot Merci

+3

Vous créez un 'QVector' qui a une taille et une capacité de 0 - vous devez d'abord de le remplir avec des éléments using 'append' [référence officielle] (http://doc.qt.io/qt-5/qvector.html#append) – UnholySheep

Répondre

1

En supposant que vous essayez de créer une table (pour laquelle QVector<QVector<T>> n'est pas le meilleur choix), vous devez l'initialiser en premier.

Quelque chose comme:

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; 
} 

vous l'appelez comme:

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; 
+0

Quelqu'un m'aide et il me donne ce qui fonctionne parfaitement: QVector > tableur (QVector > (10, QVecteur (10, ""))); tableur [1] [1] = "Mmot"; qDebug() << tableur [1] [1]; –