2017-01-07 11 views
0

는 나는 이와 같은 구조체가 있습니다. 나는 선언한다 :
QVector * n;구조체의 QList에 요소를 추가하는 방법은 무엇입니까? 내 .H 파일에서</p> <pre><code>struct Nom { QString Nom; .... QList<quint64> indNum; } </code></pre> <p>:

내 .cpp 파일에 있음. 나는 선언

n = new QVector<Nom>; 

내가 N를 입력 할 파일을 읽습니다. 내가 쓸 때 이 :

n->back().indNum.append(i->size()-1); 

그것을 작동합니다. 이 첫 번째 경우와 두 번째 작품 이유

no matching member funtion for call to 'append'
candidate function not viable: 'this' argument has type 'const QList', but method is not marked const void append(const T &t);

이해가 안 :

n->at(j).indNum.append(i->size()-1); 

내가 컴파일 오류가 있습니다
나는 것을 쓸 때. 누구든지 설명하고이 문제를 해결할 수 있습니까? 미리 감사드립니다.

답변

0

QVector::atNom 값에 대한 const 참조를 반환하므로 n->at(j)에 의해 반환 된 항목을 수정할 수 없습니다. const가 아닌 참조를 얻으려면 (*n)[j]을 사용할 수 있습니다.

n->back()QVector::back에 대해 const 및 non-const 과부하가 있기 때문에 작동합니다.

+0

답변 해 주셔서 감사합니다. erreur : 'QVector '에 'indNum'이라는 멤버가 없습니다. n [j] .indNum ('j []]) .append (i-> size() - 1); ~~~~^ – arnaud1000

+0

실제로. 현재 컴파일 오류가 없습니다. 고마워. – arnaud1000