Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>::operator[]

cppreference.net에서 가져옴
 
 
 
std::basic_string
 
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까지)

CharT() 에 대한 참조를 반환합니다. 반환된 참조가 가리키는 객체가 CharT() 이외의 값으로 수정되면 동작이 정의되지 않습니다.

(C++11부터)
2) CharT() 에 대한 참조를 반환합니다.

pos > size() 이 true 인 경우 동작이 정의되지 않습니다.

(C++26까지)

pos > size() 이 true 인 경우:

(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)