예를 들어서 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; }
의 형태를 사용하세요
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: STL 에서 컨테이너를 반환 값으로 넘길시에 궁금한점
당연히 컨테이너의 각 요소가 모조리 복사되어서 넘어오는 것입니다.
굳이 vector<int> 를 반환해야 한다면
vector<int>& func(vector<int>& rVector)
{
// 어떤 짓...
return rVector;
}
의 형태를 사용하세요
댓글 달기