std::basic_string<CharT,Traits,Allocator>:: at
From cppreference.net
<
cpp
|
string
|
basic string
C++
Strings library
| Classes | ||||
|
(C++17)
|
||||
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)
|