std::basic_string<CharT,Traits,Allocator>:: data
|
const
CharT
*
data
(
)
const
;
|
(1) |
(C++11부터 noexcept)
(C++20부터 constexpr) |
|
CharT
*
data
(
)
noexcept
;
|
(2) |
(C++17부터)
(C++20부터 constexpr) |
문자 저장소 역할을 하는 기반 배열에 대한 포인터를 반환합니다. 이 포인터는 범위
|
|
(C++11 이전) |
|
|
(C++11 이후) |
유효하며 그 안의 값들이 문자열에 저장된 값들과 일치합니다.
|
반환된 배열은 null로 종료될 필요가 없습니다. 만약 empty() 가 true 를 반환하면, 해당 포인터는 역참조되어서는 안 되는 null이 아닌 포인터입니다. |
(until C++11) |
|
반환된 배열은 null로 종료됩니다. 즉,
만약 empty() 가 true 를 반환하면, 포인터는 단일 null 문자를 가리킵니다. |
(since C++11) |
data()
로부터 얻은 포인터는 다음과 같은 경우 무효화될 수 있습니다:
- 문자열에 대한 비 const 참조를 표준 라이브러리 함수에 전달하거나,
-
문자열에서 비 const 멤버 함수를 호출하는 것(단, 다음은 제외)
operator[](), at() , front() , back() , begin() , end() , rbegin() , rend() .
data
를 통해 접근된 문자 배열을 수정하는 것은 정의되지 않은 동작입니다.
목차 |
매개변수
(없음)
반환값
기본 문자 저장소에 대한 포인터입니다.
|
data
(
)
[
i
]
==
operator
[
]
(
i
)
모든
|
(C++11 이전) |
|
data
(
)
+
i
==
std::
addressof
(
operator
[
]
(
i
)
)
모든
|
(C++11 이후) |
복잡도
상수.
예제
#include <algorithm> #include <cassert> #include <cstring> #include <string> int main() { std::string const s("Emplary"); assert(s.size() == std::strlen(s.data())); assert(std::equal(s.begin(), s.end(), s.data())); assert(std::equal(s.data(), s.data() + s.size(), s.begin())); assert('\0' == *(s.data() + s.size())); }
참고 항목
|
(
DR*
)
|
첫 번째 문자에 접근
(public member function) |
|
(
DR*
)
|
마지막 문자에 접근
(public member function) |
|
문자열의 수정 불가능한 표준 C 문자 배열 버전을 반환
(public member function) |
|
|
뷰의 첫 번째 문자에 대한 포인터를 반환
(public member function of
std::basic_string_view<CharT,Traits>
)
|