flat_map::at
flat_map::at (키로 값 접근 — 예외 안전)
지정한 키에 대응하는 매핑 값에 대한 참조를 반환하되, 키가 없으면 예외를 던지는 멤버 함수예요. <flat_map> 헤더, C++23부터.
출처: cppreference
본문
at은 지정한 키의 매핑 값에 대한 참조를 돌려줘요. 해당 요소가 없으면 std::out_of_range 예외를 던져요.
T& at( const Key& key ); // (1)
const T& at( const Key& key ) const; // (2)
template< class K >
T& at( const K& x ); // (3)
template< class K >
const T& at( const K& x ) const; // (4)
- 1,2)
key와 동등한 키를 찾아요. - 3,4)
Compare가 투명(transparent) 비교를 지원할 때,x와 동등한 키를 찾아요.
operator[]가 키가 없으면 삽입하는 반면, at은 키가 없으면 예외를 던져요. 그래서 "읽기 전용·안전한 조회"에 적합해요.
std::flat_map<std::string, int> m{{"a", 1}, {"b", 2}};
int v = m.at("a"); // 1
// m.at("z"); // std::out_of_range 예외
확실히 존재하는 키만 읽거나, 없을 가능성을 예외로 처리하고 싶을 때 써요.