std::basic_string<CharT,Traits,Allocator>:: operator[]
|
CharT
&
operator
[
]
(
size_type pos
)
;
|
(1) | (constexpr since C++20) |
|
const
CharT
&
operator
[
]
(
size_type pos
)
const
;
|
(2) | (constexpr since C++20) |
지정된 위치 pos 에 있는 문자에 대한 참조를 반환합니다. pos < size ( ) 이거나 pos == size ( ) 인 경우:
|
동작은 정의되지 않습니다. |
(C++11 이전) |
|
CharT ( ) 에 대한 참조를 반환합니다. 반환된 참조가 가리키는 객체가 CharT ( ) 이외의 값으로 수정되는 경우, 동작은 정의되지 않습니다. |
(C++11 이후) |
|
만약 pos > size ( ) 가 true 라면, 동작은 정의되지 않습니다. |
(C++26 이전) |
|
만약 pos > size ( ) 가 true 라면:
|
(C++26 이후) |
목차 |
매개변수
| pos | - | 반환할 문자의 위치 |
반환값
복잡도
상수.
예제
#include <iostream> #include <string> int main() { const std::string e("Exemplar"); for (unsigned i = e.length() - 1; i != 0; i /= 2) std::cout << e[i]; std::cout << '\n'; const char* c = &e[0]; std::cout << c << '\n'; // C 문자열로 출력 // s의 마지막 문자를 'y'로 변경 std::string s("Exemplar "); s[s.size() - 1] = 'y'; // s.back() = 'y'; 와 동일 std::cout << s << '\n'; }
출력:
rmx Exemplar Exemplary
결함 보고서
다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 259 | C++98 |
오버로드
(
1
)
가 const lvalue를 반환할 수 있었음
data ( ) [ pos ] , 이는 잘못된 형식이었음 |
다음으로 변경됨:
* ( begin ( ) + pos ) |
| LWG 2475 | C++11 |
만약
pos
==
size
(
)
, 반환된 참조가 가리키는 객체를
수정하는 동작이 정의되지 않았음 |
다음으로 수정될 경우 명확히 정의됨:
CharT ( ) |
참고 항목
|
지정된 문자에 경계 검사와 함께 접근
(public member function) |
|
|
(
DR*
)
|
첫 번째 문자에 접근
(public member function) |
|
(
DR*
)
|
마지막 문자에 접근
(public member function) |
|
지정된 문자에 접근
(
std::basic_string_view<CharT,Traits>
의 public member function)
|