[C++] const string&와 string_view

초연·2023년 5월 1일
0

CPP

목록 보기
3/3

const string&

참조자와 원본의 주소는 같으므로 참조자는 메모리에 할당되지 않을 수도 있다.

단, 매개 변수가 참조자인 경우처럼 원본과 다른 메모리 영역에 존재하는 참조자는 메모리에 할당된다.

상수 참조자이므로 Dangling reference 가능, 원본 데이터 변경 불가 등의 특징을 갖는다.

string_view

원본의 주소를 상수 포인터에 저장하므로 Dangling pointer 가능, 원본 데이터 변경 불가 등의 특징을 갖는다.

원본 데이터의 길이를 저장하므로 원본 데이터가 수정되면 잘못된 메모리 접근이 발생할 수 있다.

const string& vs string_view

매개 변수가 const string& 타입인 함수에 문자열 리터럴을 전달하면, string 임시 객체가 생성된다.

그러나, string_view 타입은 문자열 리터럴을 포인터에 저장하므로 string 임시 객체를 생성하지 않는다.

또한, string 타입이 제공하는 유용한 기능들도 지원하므로 성능 뿐만 아니라 생산성 향상에도 기여한다.

profile
게임 클라이언트 프로그래머

0개의 댓글

관련 채용 정보