2016-08-17 6 views
0

일부 QString 단어를 배열에 넣고 싶지만 어떻게해야 할 지 모르겠다.Qt와 QVector로 Q 치수 배열 만들기

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" 

아, 그래서 당신의 문자열 배열을 만드는 방법을 나에게 설명 할 수있는 표준 : : 벡터 및 표준 : : 문자열을 시도하지만이

에 작동하지 않습니다 있습니다 이 오류 메시지입니다 2 차원으로 단어를 넣으십시오 감사합니다

+3

을 - 당신은 첫 번째 요소를 작성해야 'append'를 사용하십시오 [공식 참조] (http://doc.qt.io/qt-5/qvector.html#append) – UnholySheep

답변

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

당신이 좋아 호출 : 당신은 크기 0의 용량이`QVector`를 만드는

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

누군가 나를 도와 주며, 저에게이 일을 완벽하게 수행합니다 : QVector > tableur (QVector > (10, QVector (10, ""))); tableur [1] [1] = "Mmot"; qDebug() << tableur [1] [1]; –