Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
QVector に 100,000 個の QString 要素 (各 QString には約 10 文字が含まれます) を追加しようとしました。その後、プログラムは失敗します。QVector に含めることができる要素の数に制限はありますか (もちろん、物理メモリの制限に加えて)? それに、たくさんの文字列を保存するのに十分な空きメモリがたくさんあると思います。私は何を間違っていますか?
ドキュメントから。
QVector クラスは、動的配列を提供するテンプレート クラスです。その項目を隣接するメモリ ロケーションに格納し、高速なインデックス ベースのアクセスを提供します。
これが多数の要素を追加する最良の方法であることを知るには、次のいずれかを使用してメモリに予約することです
QVector<QString> vector(100000);//or vector.reserve(100000);
これにより、メモリを数回再配置する必要がなくなります。