UniString Class
유니코드(UTF-16) 문자열.
class UniString : public Object
멤버
생성자 및 할당 연산자
문자 접근
하위 문자열 접근
삽입하기, 이어붙이기, 채우기
제거하기
Delete |
문자열로부터 지정한 문자, 또는 문자들의 범위를 제거합니다.
|
DeleteFirst |
주어진 문자 또는 문자열이 처음 발생하는 문자 또는 문자열을 제거합니다.
|
DeleteLast |
주어진 문자 또는 문자열이 마지막으로 발생하는 문자 또는 문자열을 제거합니다.
|
DeleteAll |
주어진 문자 또는 문자열을 모두 제거합니다.
|
TrimLeft |
맨 앞에 나오는 모든 공백(whitespace) 또는 지정한 문자들을 제거합니다.
|
TrimRight |
맨 뒤에 나오는 모든 공백(whitespace) 또는 지정한 문자들을 제거합니다.
|
Trim |
맨 앞과 맨 뒤에 나오는 모든 공백(whitespace) 또는 지정한 문자들을 제거합니다.
|
Clear |
문자의 내용을 지웁니다.
|
길이 및 용량 관리
비교
검색 및 치환
문자 지정 조작
변환
ToUStr |
문자열의 Unicode 레이아웃 표현을 리턴합니다.
|
ToCStr |
문자열의 C 문자열 형태를 리턴합니다.
|
ToPStr |
문자열의 Pascal 문자열 형태를 리턴합니다.
|
설명
UniString은 Unicode 문자열, 즉 Unicode 문자들의 시퀀스입니다. (UniChars)
UniString은 reference counted implementation을 갖고 있습니다. 그래서 문자열들은 빠르게 값으로 전달되고 복사될 수 있었습니다.
왜냐하면 문자열들의 소스와 사본은 변경 전까지 동일한 내용을 공유하기 때문입니다. (이 기법을 COW라고 함: Copy On Write)
reference counted implementation은 값으로 문자열들을 리턴하는 것을 용이하게 합니다.
UniString은 하나의 연속적인 재배치 메모리 버퍼 안에 Unicode 문자들을 저장합니다.
어떤 새로운 문자가 내부 버퍼에 맞지 않을 때, 더 큰 버퍼가 할당되고 모든 문자들은 새로운 버퍼로 복사됩니다.
새로운 버퍼의 크기는 예전보다 1.5배 더 클 것입니다.
문자열에서 문자들을 제거할 때에도 사용하지 않는 메모리를 해제하기 위해 재배치가 발생할 수 있습니다.
이것은 버퍼의 절반 이하를 사용할 때 발생합니다.
이러한 경우 새로운 버퍼의 크기는 대략 현재 요청했던 만큼 커지게 될 것입니다.
최근에 파괴된 작은 문자열들의 메모리 버퍼는 거의 캐시되지 않고 새로운 문자열들에게 회수됩니다.
메모리 버퍼의 생성과 파괴는 메모리 Heap 동작들을 거의 포함하지 않기 때문에 메소드 및 함수 내부에서 (작은) 로컬 문자열들을 사용하는 것이 저렴합니다.
빈 문자열들은 메모리를 사용하지 않는다는 것을 참고하십시오.
연결의 피연산자들이 전부 모인 뒤에 한 번에 전체 연결을 수행하기 때문에
문자열, 문자, 하위 문자열, C 문자열들은 operator+ 연산을 이용하여 하나의 표현식으로 매우 효과적으로 연결될 수 있습니다.
문자열은 하위 문자열 생성 연산자들을 갖고 있습니다. (예. operator())
하위 문자열은 소스 문자열의 일부분을 참조하기 때문에 그 자체는 메모리를 절대 할당하지 않습니다.
하위 문자열들은 다양한 타입들(문자열, 하위 문자열, C 문자열 등)과 함께 효과적으로 비교할 수 있으며 다양한 할당 및 연결에 참여할 수 있습니다.
이 동작들은 항상 소스 문자열들의 해당 부분에서 수행됩니다.
요구사항
네임스페이스: GS
헤더: UniString.hpp
참고사항
UniChar