は、私はこのベクターは、(サイズはメガバイト)は非常に大きくなりますオブジェクト大きなデータ構造を効率的に返す方法。
std::vector<int> data;
のベクトルを持っていると言います。私はこのデータ構造を返す必要がある関数を持っています。私がこのデータ構造を「価値によって」返すと、ベクターのコピーが作られますか?
std::vector<int> generate()
{
std::vector<int> data;
//Populate data
return data;
}
この操作は、ベクターをヒープに割り当ててポインタをベクターに渡すことと比べて効率的ですか?
std::vector<int>* generate()
{
std::vector<int>* data = new std::vector<int>();
//Populate data
return data;
}
ポインタを戻すと、手動でメモリ管理する必要があります。したがって、それを追跡するために追加するすべてのコードを考慮する必要があります。 –