아래에 일부 소스코드를 추가해보았습니다
먼저 기존의 값들을 초기화시킨후 AppendLine이 아닌 Append로 받아들이자 아래와 같은 값들이 나오게 되었는데
Length는 한줄에 들어있는 문자열길이이며 capacity는 그 줄에 들어갈수 있는 최대 문자열길이로 이해하면 될까요?
그렇다면 AppendLine의 경우 어째서 Length가 21이 되는지 궁금합니다
아래에 일부 소스코드를 추가해보았습니다
먼저 기존의 값들을 초기화시킨후 AppendLine이 아닌 Append로 받아들이자 아래와 같은 값들이 나오게 되었는데
Length는 한줄에 들어있는 문자열길이이며 capacity는 그 줄에 들어갈수 있는 최대 문자열길이로 이해하면 될까요?
그렇다면 AppendLine의 경우 어째서 Length가 21이 되는지 궁금합니다
동적인 배열의 저장 공간을 확보하는 방법으로, 저장 공간이 부족할 때 마다 현재 저장 공간의 2배로 추가 할당하는 방법을 흔히 사용합니다.
StringBuilder에 대해서는 아는 바가 없지만 아마 이런 맥락일 가능성이 커보입니다
https://en.wikipedia.org/wiki/Dynamic_array#Geometric_expansion_and_amortized_cost
댓글을 작성하려면 로그인해야 합니다.
qopwer4345 3년 전
아래의 코드를 실행하면
length = 0
capacity = 16 , 으로 초기화가 되었고
6개의 값을 배정한 뒤
length = 21
capacity = 32 , 로 변경이 되었는데
값이 어떤방식으로 저장이 된건지 궁금합니다.
또 StringBuilder에 값을 저장하다가 어느정도 양이 쌓이면 방출하는 방식을 사용하고 싶은데 어떻게 해야할지 궁금합니다..
게시판을 한두시간 찾아보고 구글링도 해봤지만 이러한 방법에 대해 논의를 하는 곳을 찾지 못했습니다..