에 가능한 중복 쓰기 : 성능의 측면에서
In C++, is it still bad practice to return a vector from a function?반환 문은
함수에서 'return'heavier std::vector
또는 std::string
같은 개체를 필요 , 이 양식을 사용하는 것이 좋습니다. :
void func(std::vector<int> *dest)
{
}
대신이 양식의
:
std::vector<int> func()
{
std::vector<int> arr;
// ...
return arr;
}
내가 처음 양식을 빠르게 처리 될 수 있다고 가정하고, 그러나 동시에 나는 자주 두 번째 양식을 본 적이 Qt는 API는 종종 QString
예를 들어 반환 아마 훨씬 더 편리하거나 직관적으로 사용하기 때문일 것입니다.
또한 return 문을 사용할 때 불필요한 객체 복사를 제거 할 수있는 컴파일러 최적화가 있는지 궁금해했습니다.
편집
거기에 어떤 인기있는 컴파일러 여전히 답변에서 언급 한 최적화를 수행하지 않는 오늘날 사용? 값을 기준으로
예, 리턴 값 최적화라고합니다. – chris
읽을 거리가 뭔가요? [원하는 속도? 값으로 전달] (http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/) – ipc
http://stackoverflow.com/questions/3134831/in-c-is - 아직도 - 나쁜 - 연습 - 반환 - 벡터에서 함수 –