Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: at

From cppreference.net
std::basic_string
CharT & at ( size_type pos ) ;
(1) (constexpr since C++20)
const CharT & at ( size_type pos ) const ;
(2) (constexpr since C++20)

지정된 위치 pos 의 문자에 대한 참조를 반환합니다. 범위 검사가 수행되며, 잘못된 접근 시 std::out_of_range 타입의 예외가 발생합니다.

목차

매개변수

pos - 반환할 문자의 위치

반환값

요청된 문자에 대한 참조입니다.

예외

std::out_of_range 를 발생시킵니다, 만약 pos >= size ( ) 인 경우.

어떤 이유로든 예외가 발생하면, 이 함수들은 아무런 효과를 가지지 않습니다( strong exception safety guarantee ).

복잡도

상수.

예제

#include <iostream>
#include <stdexcept>
#include <string>
int main()
{
    std::string s("message"); // 용량을 위해
    s = "abc";
    s.at(2) = 'x'; // 정상
    std::cout << s << '\n';
    std::cout << "string size = " << s.size() << '\n';
    std::cout << "string capacity = " << s.capacity() << '\n';
    try
    {
        // 요청된 오프셋이 현재 크기보다 크므로 예외가 발생합니다.
        s.at(3) = 'x';
    }
    catch (std::out_of_range const& exc)
    {
        std::cout << exc.what() << '\n';
    }
}

가능한 출력:

abx
string size = 3
string capacity = 7
basic_string::at

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 847 C++98 예외 안전성 보장이 없었음 강력한 예외 안전성 보장 추가
LWG 2207 C++98 pos >= size ( ) 인 경우 동작이 정의되지 않았음 이 경우 항상 예외를 발생시킴

참고 항목

지정된 문자에 접근
(public member function)
범위 검사와 함께 지정된 문자에 접근
( std::basic_string_view<CharT,Traits> 의 public member function)