Namespaces
Variants

std::basic_string_view<CharT,Traits>:: data

From cppreference.net
constexpr const_pointer data ( ) const noexcept ;
(C++17부터)

기본 문자 배열에 대한 포인터를 반환합니다. 이 포인터는 [ data ( ) , data ( ) + size ( ) ) 범위가 유효하고 그 안의 값들이 뷰의 값들과 일치하도록 합니다.

목차

매개변수

(없음)

반환값

기본 문자 배열에 대한 포인터입니다.

복잡도

상수.

참고 사항

std::basic_string::data() 와 문자열 리터럴과 달리, std::basic_string_view::data() 는 널 종료가 보장되지 않는 버퍼에 대한 포인터를 반환합니다. 예를 들어 서브스트링 뷰(예: remove_suffix 에서 생성된 뷰)의 경우가 이에 해당합니다. 따라서 data() 를 단순히 const CharT * 를 인자로 받고 널 종료 문자열을 기대하는 루틴에 전달하는 것은 일반적으로 실수입니다.

예제

#include <cstring>
#include <cwchar>
#include <iostream>
#include <string>
#include <string_view>
int main()
{
    std::wstring_view wcstr_v = L"xyzzy";
    std::cout << std::wcslen(wcstr_v.data()) << '\n';
    // OK: 기본 문자 배열이 null로 종료됨
    char array[3] = {'B', 'a', 'r'};
    std::string_view array_v(array, sizeof array);
    // std::cout << std::strlen(array_v.data()) << '\n';
    // 오류: 기본 문자 배열이 null로 종료되지 않음
    std::string str(array_v.data(), array_v.size()); // OK
    std::cout << std::strlen(str.data()) << '\n';
    // OK: std::string의 기본 문자 배열은 항상 null로 종료됨
}

출력:

5
3

참고 항목

첫 번째 문자에 접근
(public member function)
마지막 문자에 접근
(public member function)
문자열의 첫 번째 문자에 대한 포인터를 반환
( std::basic_string<CharT,Traits,Allocator> 의 public member function)