포인터로 전달 QVectors의 QVector 수정 : 나는이 작업을 수행 할 코드의 특정 지점에서I는 다음과 같이 정의 된 함수의 인수에 변수가
QVector< QVector<qreal> > *var;
을 :
를 내가 제대로 값을 참조하려면 어떻게error: no match for ‘operator*’ in ‘*(var + ((long unsigned int)(((long unsigned int)row) * 8ul)))->QVector::operator[] with T = QVector’
있기 때문에 m가되도록
*var[i][j] = some_value.
그러나이 컴파일되지 않습니다 odified? (아이디어는 함수에 전달 된 매개 변수가 정말 수정 될 수 있습니다.)
나는 그것을 몰랐다. 제가 피하고 싶었던 것은 전체 구조체를 복사하고 그것을 반환 할 때 전체 구조체를 다시 복사해야한다는 것입니다. 가치를 지키면 전체 사본이 완성되지 않습니까? 고맙습니다! – aarelovich
아니요, 값으로 전달하면 QVector의 '부기'데이터 ('QVector'의 콘텐츠 유형이나 포함 된 항목의 수에 관계없이 Windows에서는 다섯 개의 int 및 long이 하나) 만 복사됩니다. 자세한 내용은 [암시 적 공유에 대한 Qt 문서] (http://doc.qt.nokia.com/stable/implicit-sharing.html)를 참조하십시오. – sjwarner
대단히 감사합니다! 비 포인터 접근 방식을 선호하므로 변경하겠습니다. – aarelovich