関数で使用されるすべての一時ベクトルに対して1つのベクトルクラスメンバーを使用することのメモリ管理サイトからの違いは何ですか:
class A
{
private:
vector<Type> m_vector;
}
void fnc()
{
m_vector.clear();
m_vector.push_back();
//further operations on vector
}
関数内で一時ベクトルを作成します。
void fnc()
{
vector<Type> vector;
//further operations on vector
}
最初のオプションではメモリの断片化が少なくなると思います。これは、1 つの割り当てを行ってこの領域を使用しているためです。2 番目のケースでは、メモリの断片化をもたらすさまざまな関数のベクトルにメモリを割り当てています。
このベクトルの使用法の長所と短所は何ですか? 関数に多くのベクトルが必要なクラスがある場合、どちらを使用すればよいですか? そして、メモリ管理サイトから見た方が良いのはどれですか?