예를 들어서 vector<int> func(); 이럴게 선언하고.. finc 함수 내부에..
static vector<int> aaa; return aaa;
이런식으로 사용을 하면, func 에서 반환값은 래퍼런가 넘어오는 겁니까? 아니면, 컨테이가 모조리 복사되어서 넘어오는 것입니까? 어떻게 생각하면 래퍼런스 일것 같기도 하고, 아닐것 같기도 하거든요. 그럼 이만.. ^^
예를 들어서 vector<int> func(); 이럴게 선언하고.. finc 함수 내부에.. static vector<int> aaa; return aaa; 이런식으로 사용을 하면, func 에서 반환값은 래퍼런가 넘어오는 겁니까? 아니면, 컨테이가 모조리 복사되어서 넘어오는 것입니까? 어떻게 생각하면 래퍼런스 일것 같기도 하고, 아닐것 같기도 하거든요. 그럼 이만.. ^^
당연히 컨테이너의 각 요소가 모조리 복사되어서 넘어오는 것입니다. 굳이 vector<int> 를 반환해야 한다면
vector<int>& func(vector<int>& rVector) { // 어떤 짓... return rVector; }
의 형태를 사용하세요
Re: STL 에서 컨테이너를 반환 값으로 넘길시에 궁금한점
당연히 컨테이너의 각 요소가 모조리 복사되어서 넘어오는 것입니다.
굳이 vector<int> 를 반환해야 한다면
vector<int>& func(vector<int>& rVector)
{
// 어떤 짓...
return rVector;
}
의 형태를 사용하세요