重複の可能性:
C ++では、関数からベクトルを返すことはまだ悪い習慣ですか?
パフォーマンスの観点から、関数のようなstd::vector
、または関数から「重い」オブジェクトを返す必要がある場合は、次の形式を使用することをお勧めします。std::string
void func(std::vector<int> *dest)
{
}
この形式の代わりに:
std::vector<int> func()
{
std::vector<int> arr;
// ...
return arr;
}
最初のフォームの方が高速であると思いますが、同時に2番目のフォームを何度も見てきましたが、Qt APIは、QString
たとえば、はるかに便利で直感的に使用できるため、たとえばを返すことがよくあります。
また、returnステートメントを使用するときにオブジェクトの不要なコピーを削除できるコンパイラの最適化があるかどうか疑問に思いました。
編集
回答に記載されている最適化を実行しない、今日でも使用されている人気のあるコンパイラはありますか?