unordered_map_at

unordered_map_at (std::unordered_map::at — 키로 매핑값 접근)

std::unordered_map에서 지정한 키에 해당하는 매핑값에 대한 참조를 반환하는 멤버 함수예요. 키가 없으면 std::out_of_range 예외를 던져요.

출처: cppreference

본문

시그니처는 다음과 같아요.

T& at( const Key& key );            // (1)
const T& at( const Key& key ) const;   // (2)
template< class K >
T& at( const K& x );                // (3) (since C++26)
template< class K >
const T& at( const K& x ) const;    // (4) (since C++26)

지정한 키를 가진 원소의 매핑값에 대한 참조를 반환해요. 그런 원소가 없으면 std::out_of_range 타입의 예외를 던져요.

매개변수

  • key: 찾을 원소의 키
  • x: KeyEqual와 투명하게 비교할 수 있는 어떤 타입의 값 (C++26)

반환값

요청한 원소의 매핑값에 대한 참조.

예외

컨테이너에 지정한 key를 가진 원소가 없으면 std::out_of_range.

복잡도

평균 상수(amortized constant)예요.

예제

#include <iostream>
#include <unordered_map>
#include <stdexcept>
int main()
{
    std::unordered_map<int, char> m{{1, 'a'}, {2, 'b'}};
    std::cout << m.at(1) << '\n';   // a
    try { m.at(9); }
    catch (std::out_of_range&) { std::cout << "out of range\n"; }
}

더 알아보기 (Learn more)

cppreference