ベクトル データ メンバーにメモリを割り当てる場合、考慮すべき主な方法が 2 つあります。 Vector::resize() とVector::reserve().
vector::resize() メソッドは、要素を挿入または削除して、ベクトルのサイズを指定された値に調整します。これは、size() と Capacity() の両方に影響します。サイズ変更された要素はデフォルトで初期化されるか、2 番目の引数として指定された値が割り当てられます。
一方、vector::reserve() メソッドは単に要素を初期化せずにメモリを復元します。これは、capacity() にのみ影響し、size() は変更されません。予約されたメモリにはオブジェクト値が含まれません。
resize() とreserve() のどちらを選択するかは、目的の結果によって異なります。
特定のシナリオでは、初期サイズは時折増加しながら約 700 ~ 800 と推定されますが、一般的には手動で事前に割り当てないことをお勧めします。代わりに、必要に応じて要素を挿入し、ベクターが内部で動的メモリ管理を処理できるようにする方が効率的です。
ただし、事前にかなり正確な合計サイズの推定値が得られる場合は、vector::reserve() を使用できます。その見積もりで。そして、それが不十分であることが判明した場合、ベクターはオーバーフローを効率的に処理します。
以上が`std::vector: サイズ変更() それとも予約()? どの方法を選択すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。