На карте С++

Na Karte S



Библиотека C++ STL предоставляет нам класс карты. Карты считаются ассоциативными контейнерами, которые сохраняют объекты в паре упорядоченных ключевых значений и сопоставленных значений. Никогда не может быть двух сопоставленных значений с одним и тем же значением ключа. Класс Map предоставляет множество функций, но здесь мы обсудим карта.at() функция. Сопоставленный элемент со значением ключа передается как параметр функции, на который ссылается с помощью карта.at() функция. Когда мы пытаемся добраться до элемента, который не находится внутри диапазона контейнера, карта.at() Функция оценивает диапазон контейнера и выдает исключение.

Синтаксис функции map.at()

Нам нужно следовать приведенному ниже синтаксису, чтобы реализовать функцию map.at() на C++.







Map_variable.at ( ключ / пара значений )



Мы использовали объект карты с именем «Map_variable» с в() функция. Он возвращает элемент, на который непосредственно ссылаются, и указывает на указанное значение ключа. Карта ключей данных в основном зависит от диапазона карты. Если это не так, существует вероятность того, что во время выполнения будет возвращено исключение или ошибка, означающая, что значение выходит за пределы определенного диапазона. Теперь мы будем использовать этот синтаксис в кодах C++, чтобы показать, что он работает.



Пример 1: Использование функции map.at()

Программа реализована для демонстрации функции map.at. Мы связали в() функция с карта() функция, которая принимает некоторые входные значения и показывает свою функциональность. Для этого мы заполнили шапку программы, импортировав модуль карты другим необходимым модулем для c++. Затем мы вызвали главный() функция для объявления карты из класса карты. Объект карты помечен как «MyMap». Мы создаем список карт, указав ключ и значение карты.





После этого мы вызвали карта.at() функция, которая отображает указанную строку в целое число. Затем мы распечатали результаты из карта.at() функция из цикла for. Цикл for использует ссылку на ключевое слово «auto». Ключевое слово auto указывает, что инициализатор автоматически удалит тип переменной из объявленного. Оператор cout напечатает пары в том порядке, который возвращается из карта.at() функция.

#include <иопоток>

#include <строка>

#include <карта>


внутренний основной ( )

стандарт: :карта < std::string, интервал > Моя карта = {

{ 'яблоко', 0 } ,

{ 'виноград' , 0 } ,

{ 'манго' , 0 } }

Моя карта.at ( 'яблоко' ) знак равно 5 ;

Моя карта.at ( 'виноград' ) знак равно 10 ;

Моя карта.at ( 'манго' ) знак равно 6 ;

за ( авто & м: Моя карта ) {

станд:: cout << м.первый << ': ' << м.секунда << '\n' ; }

< сильный > возвращаться 0 ;

}



Теперь у нас есть результаты из приведенной выше программы, которая реализует карта.at() функция. Все указанные целые числа, которые находятся в диапазоне, отображаются напротив каждой строки.

Пример 2: Использование функции map.at() для исключения out_of_range

На примере программы мы обсудили использование карта.ат функция на С++. Теперь мы внедрили еще один карта.ат в программе. Но на этот раз он вернет значение, представленное внутри карты, а также исключение out_of_range, когда ключ не указан. Поскольку мы должны использовать карта.ат функция, поэтому мы добавили модуль карты в заголовок. Затем мы определили основную функцию, в которой «пустота» передается в качестве параметра.

Внутри основной функции мы инициализировали конструктор списка, создав объект карты как «m1». Список карт имеет разные строки ключей и целочисленные значения против них. Затем мы напечатали ключ «i», пропустив его через карта.ат функция. Мы использовали блок try-catch. В блоке try мы представили ключ несуществования в карта.ат функция. Поскольку ключ находится вне допустимого диапазона, блок try выдаст ошибку.

#include <иопоток>

#include <карта>

использование пространства имен std;

внутренний основной ( пустота ) {


карта < символ, интервал > м1 = {

{ 'л' , 1 } ,

{ 'я' , два } ,

{ 'н' , 3 } ,

{ 'в' , 4 } ,

{ 'Икс' , 5 } ,

} ;



cout << 'значение ключа карты m1['i'] = ' << м1.ат ( 'я' ) << конец;



пытаться {

м1.ат ( 'Д' ) ;

} ловить ( константа вне_диапазона & а также ) {

cerr << 'Ошибка в' << е. что ( ) << конец;

}



возвращаться 0 ;

}

Мы можем визуализировать из выходного снимка экрана, что карта.at() Функция возвращает только те ключи, которые присутствуют на карте. Ключи вне диапазона выдают ошибку, поскольку ошибка отображается, когда мы передали ключ «y» в карта.ат функция.

Пример 3: Использование функции map.at() для доступа к элементам

Доступ к элементу можно получить, используя указанный элемент цифр из функции map.at. Давайте реализуем эту программу, чтобы выполнить приведенное выше утверждение. Сначала мы определили модуль карты в разделе заголовка, так как он требуется для доступа к карта.ат функция. Затем у нас есть основная функция, в которой класс карты инициализирует объект карты как «Карта». С помощью этого объекта «Карта» мы сгенерировали ключи строк и присвоили им значение цифры. После этого мы позвонили в карта.ат функцию с оператором cout и передал ключ «Пример» в качестве входных данных.

#include <иопоток>

#include <карта>

#include <строка>

использование пространства имен std;

внутренний основной ( )

{

карта < строка, интервал > Карта;

карта [ 'Мой' ] знак равно 1 ;

карта [ 'С++' ] знак равно два ;

карта [ 'Карта' ] знак равно 3 ;

карта [ 'Пример' ] знак равно 4 ;

cout << Карта.at ( 'Пример' ) ;

возвращаться 0 ;

}

Цифровой элемент возвращается против указанного ключа в карта.ат функция. Результат дает значение «4», так как эта цифра присвоена ключевому элементу «Пример» карты.

Пример 4: Использование функции map.at() для изменения элементов

Давайте рассмотрим простой пример изменения значения, связанного со значением ключа. Мы создали список карты, вызвав класс карты и создав объект «M1». Мы присвоили строковое значение каждому ключу карты. Затем мы должны использовать карта.ат функция. в карта.ат мы использовали указанные ключи и присвоили этим ключам новые строковые значения. Теперь эти значения будут изменены с предыдущими. С помощью цикла for мы перебрали каждый элемент карты и отобразили его как результат.

#include <иопоток>

#include <строка>

#include <карта>


использование пространства имен std;


внутренний основной ( )

{

карта < интервал, строка > М1 = {

{ 10 , 'С++' } ,

{ 20 , 'Ява' } ,

{ 30 , 'питон' } ,

{ 40 , 'кшарп' } ,

{ 50 , 'ОТКРЫТЫМ' } } ;




М1.ат ( 20 ) знак равно «Тензорфлоу» ;

М1.ат ( 30 ) знак равно 'Линукс' ;

М1.ат ( 50 ) знак равно 'Скала' ;

cout << ' \n Элементы:' << конец;

за ( авто & х: М1 ) {

cout << х.первый << ': ' << х.секунда << '\n' ;

}


возвращаться 0 ;

}

Обратите внимание, что значения, полученные в качестве вывода, изменили вновь назначенные строковые значения в карта.ат функция. Обновленные значения показаны на снимке ниже.

Вывод

Статья о функции map.at. Мы предоставили функциональность функции map.at() через ее синтаксис, и пример реализован с помощью компилятора C++. Функция map.at() очень полезна, поскольку она обеспечивает доступ к элементам и возвращает явное исключение или ошибку, описывающую ситуацию, возникшую при вызове метода. Кроме того, мы можем присвоить новые значения ключу существования с помощью функции map.at.