0

私は次のようなリストを作成して QList<Type> types[LastType]; います: 次に、リストのサイズを変更 します:types[SomeType].reserve(count); その後、タイプを追加しようとすると、次のようにします: types[SomeType].append(newType);

そして、operator[] でアサーション エラーが発生します。それで、それは私だけですか、それとも私はこのようにするべきではありませんか? 足りないものはありますか?これは、エラー メッセージの内容です: http://i.imgur.com/LnDNV.png。.reserve を削除しても問題は解決しません。

4

1 に答える 1

0

したがって、 aQListが実際に内部で avectorであると仮定するとreserve、間違った呼び出しになります。あなたが言うようにリストのサイズを変更するのではなく、少なくとも sizeより多くの要素にスペースを割り当てるように求めています。はい、より多くのスペースを割り当てますが、リスト のサイズは変更しません。

いずれにせよ、この関数の呼び出しは、ベクトルに含まれる要素やベクトルのサイズに影響を与えることはありません (その目的については、ベクトルのサイズと内容を変更する vector::resize または vector::erase を参照してください)。

あなたはここにいたいようですresizeね。

于 2012-07-02T23:43:21.427 に答える