Namespaces
Variants

std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: at

From cppreference.net

T & at ( const Key & key ) ;
(1) (начиная с C++11)
const T & at ( const Key & key ) const ;
(2) (начиная с C++11)
template < class K >
T & at ( const K & x ) ;
(3) (начиная с C++26)
template < class K >
const T & at ( const K & x ) const ;
(4) (начиная с C++26)

Возвращает ссылку на отображенное значение элемента с указанным ключом. Если такого элемента не существует, выбрасывается исключение типа std::out_of_range .

1,2) Ключ эквивалентен key .
3,4) Ключ сравнивается эквивалентно со значением x . Ссылка на сопоставленное значение получается как если бы выражением this - > find ( x ) - > second .
Выражение this - > find ( x ) должно быть корректно сформированным и иметь определённое поведение, иначе поведение не определено.
Эти перегрузки участвуют в разрешении перегрузки только если Hash и KeyEqual оба являются прозрачными . Это предполагает, что такой Hash может быть вызван как с типом K , так и с типом Key , и что KeyEqual является прозрачным, что вместе позволяет вызывать эту функцию без создания экземпляра Key .

Содержание

Параметры

key - ключ элемента для поиска
x - значение любого типа, которое можно прозрачно сравнивать с ключом

Возвращаемое значение

Ссылка на отображенное значение запрашиваемого элемента.

Исключения

1,2) std::out_of_range если контейнер не содержит элемента с указанным key .
3,4) std::out_of_range если контейнер не содержит указанный элемент, то есть если find ( x ) == end ( ) равно true .

Сложность

Средний случай: константа, худший случай: линейно от размера.

Примечания

Feature-test macro Value Std Feature
__cpp_lib_associative_heterogeneous_insertion 202311L (C++26) Гетерогенные перегрузки для оставшихся функций-членов в упорядоченных и неупорядоченных ассоциативных контейнерах . ( 3,4 )

Пример

Смотрите также

доступ или вставка указанного элемента
(public member function)
находит элемент с указанным ключом
(public member function)