2016-08-17 2 views
0

Ich möchte einige QString Worte in Array, aber ich weiß nicht, wie kann ich tun. Ich habe versucht mit Vektor wie folgt aus:Erstellen QString-Array von zwei Dimensionen mit QVector mit Qt

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

Aber das nicht funktionieren. Diese ist die Fehlermeldung:

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

Ah haben versuchen, mit std :: vector und std :: string, aber diese funktionieren nicht auf

So können Sie mir erklären, wie ein String-Array von erstellen zwei Dimensionen, um Wort Dank

+3

Sie sind eine 'QVector' zu schaffen, die eine Größe und Kapazität von 0 hat - Sie es zunächst mit Elementen zu füllen brauchen mit 'append' [offizielle Referenz] (http://doc.qt.io/qt-5/qvector.html#append) – UnholySheep

Antwort

1

Angenommen, Sie versuchen, eine Tabelle zu erstellen (für die QVector<QVector<T>> ist nicht die beste Wahl) sollten Sie es zuerst initialisieren.

Etwas wie:

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

dann rufen Sie es mögen:

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

Jemand hilft mir und er gibt mir das, was perfekt funktioniert: QVector > tableur (QVector > (10, QVector (10, ""))); Tableur [1] [1] = "Mmot"; qDebug() << Tabelle [1] [1]; –

Verwandte Themen