C 11은 c_str() 메서드에서 Null로 끝나지 않는 문자열을 허용합니까?
C 11에서 c_str( ) basic_string 클래스가 변경되었습니다. 이제 data()와 동일하게 정의되어 문자열의 n번째 요소에 대한 포인터를 반환하도록 정의됩니다. 여기서 n은 0과 문자열 크기에서 1을 뺀 값 사이입니다.
그러나 , c_str() 및 data() 모두의 기반이 되는 Operator[] 메서드의 업데이트된 정의는 문자열이 이제 내부적으로 null로 끝나는 버퍼를 사용해야 함을 분명히 합니다.
특히, Operator[] 메서드에는 다음이 필요합니다. 반환된 값은 charT() 값을 가진 T 유형의 객체에 대한 참조입니다. 여기서 T는 문자열 요소의 유형이고 charT()는 널 문자의 유형입니다. 또한 이 참조 값은 수정할 수 없습니다.
c_str() 및 data()는 모두 O(1) 작업이어야 하므로 구현에서는 본질적으로 null로 끝나는 버퍼를 사용해야 합니다. 또한, Operator[] 메소드의 반환 값 요구 사항은 종료 null 문자가 문자열 요소와 동일한 버퍼에 있어야 함을 의미합니다.
위 내용은 C 11에서는 c_str() 및 data()에 대해 Null로 끝나는 문자열이 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!