Map Search C++

C++ Программирование и разработка

«Связывающий контейнер, известный как карта, позволяет хранить в C++ элементы, полученные в результате взаимодействия пары ключ-значение и отображаемых данных в определенной последовательности. Соответствующие ключи в контейнере карты всегда используются для правильной организации информации. Используя его специальные ключи, можно получить значения контейнера карты. Для извлечения данных из контейнера мы использовали функцию map::search(), которая находится в заголовочном файле

.

Map::search() — это встроенная функция в C++ STL (стандартная библиотека шаблонов), которая предоставляет итератор или статический итератор, указывающий на место на карте, в котором находится ключ. Он создает итератор или статический итератор, который ссылается на карту; если ключ недоступен в контейнере, то вызывается функция map.end()».

Преимущества функции map::search() в C++

К преимуществам объекта std::map относятся быстрый поиск, включение и удаление действий, которые можно выполнить за логарифмическое время. Компонент find, который получает ссылку на ключ, предлагает функцию поиска. Итератор для соответствующего компонента создается, если указанный ключ может быть расположен в объекте std::map. Предыдущий итератор (map::end()) дается, если, наоборот, предоставленный ключ не находится в контейнере.

Синтаксис функции map::search() в C++

Вот синтаксис функции map::search() в C++.

«ИЛИ ЖЕ»

Параметры в функции map::search() в C++

Указание ключа для поиска в контейнерах карт — единственный обязательный параметр, который позволяет функция map::search().

Вычисляемое значение функции является либо итератором, либо константным итератором, указывающим на расположение ключа на карте. Если каким-либо образом ключ отсутствует в контейнерах карты, функция вернет итерацию или статическую итерацию, указывающую на функцию map.end().

Читайте также:  Как перебирать элементы Set в JavaScript?

Завершение выполнения для компонента поиска

Поиск компонентов в функции std::map search() занимает время O(log n). Поскольку существует внутреннее хранилище элементов в виде балансирующего двоичного дерева поиска (BST), даже в худшем сценарии оно должно быть O(log n) по сравнению со std::string. Напротив, временная сложность поиска в идеальном случае составляет O(1), поскольку компоненты хранятся в реляционной таблице, а ключ служит индикатором при попытке поиска в несортированных картах.

Вот следующий фрагмент кода; мы использовали функцию map::search() в C++, чтобы найти ключ, в котором он находится. В нашем коде, во-первых, мы добавили заголовочный файл «iostream», который является стандартным потоком ввода-вывода для таких объектов, как cin, cout и т. д. Затем добавьте заголовочный файл «map», который содержит организованные пары ключ-значение, где каждый ключ уникален и может быть только добавлен или удален. Затем мы использовали стандартное «пространство имен std» в нашем коде, потому что более одной переменной, функции, класса и т. д. не могут иметь одну и ту же идентичность в точном контексте C++.

#include <iostream>
#include <map>
using namespace std;

Далее был предоставлен метод main(), который был создан для начала выполнения кода. В функции main(), во-первых, мы объявили переменную «n» с типом данных «integer». Контейнер «map<int, string> m1» содержит упорядоченный набор данных, содержащий ключевые значения, а «m1» является членом связанных контейнеров в стандартной библиотеке шаблонов C++. Имейте в виду, что ключи в контейнере «map<int, string>» являются эксклюзивными. В результате, если новые элементы добавляются при использовании текущих ключей, ничего не происходит. Однако, если ключи совпадают, некоторые уникальные функции-члены в контейнере «map<int, string>» могут добавлять новые данные к ранее существовавшим парам.

После этого «cout» используется для вывода точной строки информации, записанной в кавычках. Затем «cin» используется для получения ввода от пользователя. Затем ключевое слово «auto» используется для поиска элемента в контейнере «m1».

int main()
{
int n;
map m1 = {{1 , «Hello»},
{2 , «Java»},
{3 , «Python»},
{4 , «Ruby»},
{5 , «React»},
{6 , «Angular»},};

cout<>n;
auto item = m1.find(n);

После объявления используется условие if-else. В операторе if мы проверяем элемент, доступен ли он в контейнере m1, а затем печатаем элемент. Если он не находится в контейнере «m1», он показывает сообщение об ошибке, которое было записано в «cout».

    if (item != m1.end())
{
cout << «Key exists!» << endl << «The Key at index «
<first << » is « <second << endl;
}
else
{
cout <<«Key does not exist!» << endl << «Sorry for inconvenience.»
<< endl <<«Please try again with correct key index from 1 to 6»;
}

В конце функции main() мы вернем «EXIT_SUCCESS», что указывает на успешное выполнение программы.

return EXIT_SUCCESS;
}

Вот полная иллюстрация функции map::search(), которая используется для поиска компонента с использованием значения ключа, предоставленного пользователем.

Вот полная иллюстрация функции map

После компиляции вышеуказанной программы она покажет следующее сообщение о том, что пользователь должен ввести индекс ключа, который он/она хочет найти. Пользователи должны ввести индекс ключа в диапазоне от 1 до 6.

После компиляции вышеуказанной программы она

Как вы можете видеть ниже, когда пользователь вводит индекс 1 ключа, он показывает сообщение о том, что «Ключ существует!» а ключ по индексу 1 — «Hello».

Как вы можете видеть ниже, когда пользователь вводит индекс 1 ключа

Если пользователь вводит ключ индекса выше диапазона от 1 до 6, компилятор выдает сообщение об ошибке «пожалуйста, попробуйте еще раз с правильным ключом индекса от 1 до 6».

Если пользователь вводит ключ индекса выше диапазона от 1 до 6

Давайте возьмем другой пример, чтобы напечатать все компоненты случайного порядка после обнаружения компонента. Чтобы предотвратить любые проблемы во время компиляции и выполнения кода, мы включили в код заголовочный файл «bits/stdc++.h». Функция main() была инициализирована после добавления библиотеки заголовков и «пространства имен std». В функции main() мы инициализировали контейнер m1. Затем значения вставляются в случайном порядке. После этого оператор «cout» используется для печати вывода, то же самое написано в кавычках. Затем применяется условие «для», чтобы найти позицию, в которой присутствует «2», с помощью функции find(). Затем верните 0, что означает успешное выполнение программы.

#include <bits/stdc++.h>
using namespace std;

int main()
{
map m1;

m1.insert({ 2101 });
m1.insert({ 1689 });
m1.insert({ 3350 });
m1.insert({ 6991 });
m1.insert({ 4541 });
m1.insert({ 5542 });

cout << «Elements from position 2 onward are: «<<endl;
cout << «KEY\tELEMENT»<<endl;

for (auto iterator = m1.find(2); iterator != m1.end(); iterator++)
{
cout <first << \t <second <<endl;
}

return 0;
}

Вот вывод скомпилированной программы:

вывод скомпилированной програ

Заключение

В этой статье приведено достаточно примеров, чтобы проиллюстрировать работу метода map::search() языка C++. Мы обсудили работу map::search() на C++. Мы также обсудили преимущества, параметры и возвращаемое значение функции map::search(). В конце мы собрали несколько примеров, чтобы помочь пользователю найти компонент со значением ключа в C++.

Оцените статью
bestprogrammer.ru
Добавить комментарий