簡単な質問 - おそらくスタイルです。ベクターが不要になったときにベクターをクリア/空にすることが望ましいですか、それとも、コンテナーが不要になったときに STL を使用してクリーンアップすることができますか。
この場合、ポインターや削除が必要なその他のオブジェクトを含まない基本的なベクトルについて話しています。
std::vector<double> myVector;
// use it
// finished with it
// use clear?
myVector.clear();
ストレージを放棄する保証がないため、ベクトルをクリアしてもメリットはありません。を参照してくださいcapacity()。
ベクトルが使用するメモリが本当に気になる場合は、ちょっとしたトリックを使用して空のベクトルに置き換えることができます。
std::vector<double>().swap(myVector);
もちろん、最も簡単な方法は、ベクターをスコープ外に放置することです。ベクターは自動的に破棄され、すべてのストレージが解放されます。
ベクター オブジェクトが範囲外になると、それに関連付けられているリソースが回復されます。
を呼び出す必要はありません。それ自体clearをvector処理します。clearそのオブジェクトを再度使用したいが、その内容をすべて削除したい場合にのみ使用してください。