std::basic_string<CharT,Traits,Allocator>::operator[]
cppreference.net에서 가져옴
CharT& operator[]( size_type pos );
|
(1) | (C++20부터 constexpr) |
const CharT& operator[]( size_type pos ) const;
|
(2) | (C++20부터 constexpr) |
지정된 위치 pos 에 있는 문자에 대한 참조를 반환합니다. 만약 pos < size() 이거나, 또는 pos == size() 인 경우:
1)
|
동작이 정의되지 않습니다. |
(C++11까지) |
|
|
(C++11부터) |
2)
CharT() 에 대한 참조를 반환합니다.|
|
(C++26까지) |
|
|
(C++26부터) |
매개변수
| pos | - | 반환할 문자의 위치 |
반환값
1)
*
(
begin
(
)
+
pos
)
만약
pos
<
size
(
)
, 또는
CharT
(
)
에 대한 참조를 반환합니다, 만약
pos
==
size
(
)
(C++11부터)
.
2)
*
(
begin
(
)
+
pos
)
만약
pos
<
size
(
)
인 경우, 또는
CharT
(
)
에 대한 참조를 반환합니다. 만약
pos
==
size
(
)
인 경우.
복잡도
상수.
예제
이 코드 실행
#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)
|