map :: at () в C ++ STL

Опубликовано: 31 Декабря, 2021

Карты - это ассоциативные контейнеры, в которых элементы хранятся сопоставленным образом. Каждый элемент имеет значение ключа и сопоставленное значение. Никакие два сопоставленных значения не могут иметь одинаковые ключевые значения.

map :: at ()

Функция at () используется для ссылки на элемент, сопоставленный со значением ключа, заданным в качестве параметра функции. Например, если у нас есть строка «hi», сопоставленная с целым числом 1, то передача целого числа 1 в качестве параметра функции at () вернет строку «hi».

Чем функция at () отличается от operator []
Функция at () проверяет диапазон контейнера и выдает исключение, когда мы пытаемся получить доступ к элементу вне диапазона, в то время как operator [] не проверяет диапазон контейнера и показывает неопределенное поведение, когда элемент не в диапазоне диапазон доступен.

Синтаксис:

mapname .at ( ключ )
Параметры:
Значение ключа, сопоставленное с элементом, который нужно получить.
Возврат:
Прямая ссылка на элемент по заданному значению ключа.

Примеры:

Input  :  map mymap;
          mymap["a"] = 1;
          mymap.at("a");
Output :  1

Input  :  map mymap;
          mymap["abcd"] = 7;
          mymap.at("abcd");
Output :  7

Ошибки и исключения

1. Если ключа нет на карте, выкидывает out_of_range.
2. В противном случае он имеет строгую гарантию отсутствия исключения.

// CPP program to illustrate
// Implementation of at() function
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
// map declaration
map<string, int > mymap;
// mapping strings to integers
mymap[ "hi" ] = 1;
mymap[ "welcome" ] = 2;
mymap[ "thanks" ] = 3;
mymap[ "bye" ] = 4;
// printing the integer mapped
// by string "thanks"
cout << mymap.at( "thanks" );
return 0;
}

Выход:

 3

Сложность времени: O (logn)

Чем функция at () отличается от operator []
Функция at () проверяет диапазон контейнера и выдает исключение, когда мы пытаемся получить доступ к элементу вне диапазона, в то время как operator [] не проверяет диапазон контейнера и показывает неопределенное поведение, когда элемент не в диапазоне диапазон доступен.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++