Scroll to navigation

std::unordered_map::at(3) C++ Standard Libary std::unordered_map::at(3)

NAME

std::unordered_map::at - std::unordered_map::at

Synopsis


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


Returns a reference to the mapped value of the element with specified key. If no
such element exists, an exception of type std::out_of_range is thrown.


1,2) The key is equivalent to key.
3,4) The key compares equivalent to the value x. The reference to the mapped value
is obtained as if by expression this->find(x)->second.
The expression this->find(x) must be well-formed and have well-defined behavior,
otherwise the behavior is undefined.
These overloads participate in overload resolution only if Hash::is_transparent and
KeyEqual::is_transparent are valid and each denotes a type. This assumes that such
Hash is callable with both K and Key type, and that the KeyEqual is transparent,
which, together, allows calling this function without constructing an instance of
Key.

Parameters


key - the key of the element to find
x - a value of any type that can be transparently compared with a key

Return value


A reference to the mapped value of the requested element.

Exceptions


1,2) std::out_of_range if the container does not have an element with the specified
key.
3,4) std::out_of_range if the container does not have the specified element, that
is, if find(x) == end() is true.

Complexity


Average case: constant, worst case: linear in size.

Notes


Feature-test macro Value Std Feature
Heterogeneous
overloads for the
remaining member
__cpp_lib_associative_heterogeneous_insertion 202311L (C++26) functions in ordered
and unordered
associative
containers. (3,4)

Example


This section is incomplete
Reason: no example

See also


operator[] access or insert specified element
(public member function)

Category:


* Todo no example

2024.06.10 http://cppreference.com