2
String
문자를 계산할 때 countElements 함수의 런타임 복잡도는 얼마입니까?T.Index가 RandomAccessIndexType 인 경우 countElements의 런타임 복잡성이 있습니까?
문서는 말한다 :
O (1) T.Index이 RandomAccessIndexType 경우; 그렇지 않으면 O (N).
RandomAccessIndexType이란 무엇입니까? String
은 RandomAccessIndexType입니까?
O의 위치에 임의의 수에 의해 상쇄 될 수 있고, 임의의 도달 값까지의 거리를 측정 할 수있는 지표 (1)
스위프트 : 따라서 문서에
입니다. 추가 정보를 추가하기 위해 String은 확장 된 문자 집합 클러스터를 지원하므로 String은 RandomAccessIndexType이 아니므로 "요소"를 찾으려면 문자열을 반복해야합니다. (예를 들어 결합 문자/악센트 등) 전체의 grapheme 클러스터를 나타냅니다. –
또한 String은 평면 1에서 UTF-16 문자로 구현 되었기 때문에 두 개의 UTF-16 코드 단위가 필요합니다. 대부분의 이모티콘은 비행기 1에 있습니다. 이것은 실제로 NSString과 다르지 않습니다. NSString의'length' 속성은 Swift 문자열에 접근 할 때'utf16Count'라는 이름으로 바뀌 었습니다. 'NSString''length' 속성은 문자 수가 아닌 UTF-16 코드 단위 (unichar)의 수를 반환합니다. – zaph