tweener123   1년 전

안녕하세요

아래 소스코드와 같은 함수를 하나 짰다고 했을 때 벡터를 레퍼런스로 받게되면 시간을 훨씬 절약할 수 있는 것으로 알고 있습니다. 이는 함수를 호출할 때마다 벡터를 복사해야할 필요가 없기때문으로 생각되는데 전역변수도 같은 의미로 시간을 줄일 수 있는 것이죠?

그렇다면 만약 함수 인자로 받아올 벡터같은 것이 변형이 없다고 생각된다면 레퍼런스 타입을 항상 써주는 게 맞을까요? 이것의 단점은 없는 것이죠??

감사합니다.

slah007   1년 전

레퍼런스와 복사의 유일한 차이점은 함수 내에서 새로 복사해서 쓸 것인지(쓰고 나서 함수 내에서 사라짐) 아니면 밖의 데이터를 이름만 바꿔 가져올 것인지(변경한 것이 밖에서도 변경)이기 때문에,

1. 위의 설명대로의 용도라면 무조건 붙이는 것이 더 빨라지는것이 맞고

2. 확실히 변형을 하지 않을 것이라면 const std::vector &deck과 같이 적는 것이 속도도 조금이라도 더 빠른 것으로 알고 있고 더 명시적입니다.

tweener123   1년 전

감사합니다! 명확히 해결되었습니다. 

const 쓰는 연습도 확실히 붙이는 것이 더 좋겠네요

댓글을 작성하려면 로그인해야 합니다.