Comment initialiser QVector

Je suis novice en c++ et Qt et je suis en train d'initialiser un QVector, qui est un membre de la classe dans une classe de l'initialisation de la liste comme:

MyClass::MyClass(QWidget *parent) : QMainWindow(parent) , myVector(QVector<double>(100))

Je m'attendais à la QVector avoir déjà 100 index alocated, mais lorsque je tente de lire myVector[0] j'obtiens une erreur d'assertion en disant "exception non Gérée à 0x0143bf77 dans test.exe: 0xC0000005: violation d'Accès lecture de l'emplacement 0x00000004." et le programme s'arrête à cette ligne de Qt:

inline T &QVector<T>::operator[](int i)
{ Q_ASSERT_X(i >= 0 && i < d->size, "QVector<T>::operator[]", "index out of range");
  return data()[i]; }

Qui, je crois, montre que je suis en train d'essayer d'accéder aux membres qui ne sont pas affectés, de sorte que je suppose que je ne suis pas à l'aide de la liste d'initialisation correctement. Je pouvais en faire un pointeur et de faire un new QVector(100) dans le constructeur, mais je veux savoir quel est le problème et comment puis-je faire corriger.

juste myVector(100) dans le constructeur devrait suffire
Je suis dans une boucle for, donc first() coutume de travail
Si je ne myVector(100) j'obtiens l'erreur: valeur initiale de référence à la non-const doit être une lvalue
afficher la déclaration de myVector.

OriginalL'auteur mFeinstein | 2014-01-05