Pesquisa de mapa C ++

Pesquisa de mapa C ++
“O contêiner associado conhecido como mapa permite o armazenamento de elementos em C ++ que resultam da interação de um par de valores-chave e dados mapeados em uma sequência específica. As chaves relevantes em um contêiner de mapa são sempre usadas para organizar adequadamente as informações. Ao usar suas chaves específicas, os valores de um contêiner de mapa podem ser recuperados. Para recuperar os dados do contêiner, usamos a função mapa :: search (), que aparece no arquivo de cabeçalho .

Map :: search () é uma função interna no C ++ STL (Biblioteca de modelo padrão) que fornece um iterador ou um iterador estático que aponta para o local no mapa em que a chave está localizada. Produz um iterador ou um iterador estático que faz referência ao mapa; Se a chave não estiver disponível no contêiner, o mapa.a função end () é chamada.”

Vantagens do mapa :: search () função em c++

Os benefícios do objeto STD :: Map incluem pesquisa rápida, inclusão e remoção de ações que podem ser concluídas no tempo logarítmico. O componente de localização, que recebe uma referência a uma chave, oferece a função de pesquisa. O iterador para o componente relevante é produzido se a tecla especificada puder ser localizada no objeto STD :: Map. O iterador anterior (map :: end ()) é dado se, na mão contrária, a chave fornecida não estiver localizada no contêiner.

Sintaxe do mapa :: Search () Função em C++

Aqui está a sintaxe do map :: search () função em c++.

"OU"

Parâmetros no mapa :: search () função em c++

Especificar a chave a ser encontrada nos contêineres do mapa é o único parâmetro necessário que a função mapa :: search () permite.

Valor retornado no mapa :: Search () Função em C++

O valor calculado da função é um iterador ou um iterador constante que aponta para a localização da chave no mapa. Se de alguma forma a chave estiver ausente dos recipientes do mapa, a função retornará uma iteração ou uma iteração estática que aponta para o mapa.função end ().

Conclusão de tempo de execução para componente de pesquisa

Encontrar componentes em uma função STD :: map () leva o tempo o (log n) para concluir. Como há armazenamento interno de itens como uma árvore de pesquisa binária de equilíbrio (BST), mesmo no pior cenário, deve ser O (log n) em comparação com a STD :: String. Por outro lado, a complexidade ideal do tempo de caso para encontrar é O (1) porque os componentes são mantidos em uma tabela relacional, e a chave serve como um indicador ao tentar pesquisar em mapas não classificados.

Exemplo 01: Use o mapa :: search () função para pesquisar o componente com um valor de chave fornecido em c++

Aqui está o seguinte snippet de código; Usamos a função mapa :: search () em c ++ para encontrar a chave onde ela está localizada. Em nosso código, em primeiro lugar, adicionamos o arquivo de cabeçalho "iostream", que é um fluxo de entrada de entrada padrão para objetos como CIN, Cout, etc. Em seguida, adicione o arquivo de cabeçalho "mapa" que contém pares de valor-chave organizado, onde cada chave é distinta e só pode ser adicionada ou removida. Em seguida, usamos o "espaço para nome de nome" padrão em nosso código porque mais de uma variável, função, classe, etc., não pode compartilhar a mesma identidade dentro do contexto exato em c++.

#incluir
#incluir
usando namespace std;

O método principal (), que foi criado para iniciar a execução do código, foi então fornecido. Na função Main (), em primeiro lugar, declaramos uma variável "n" do tipo de dados "Inteiro". O contêiner "mapa m1" contém um conjunto de dados organizado contendo valores -chave, e "M1" é um membro dos contêineres associados na biblioteca de modelos padrão C ++. Lembre -se de que as chaves no contêiner "mapa" são exclusivas. Como resultado, se novos itens forem adicionados ao usar as chaves atuais, nada acontece. No entanto, se as chaves coincidirem, algumas funções de membro exclusivas no contêiner "mapa" podem adicionar novos dados aos pares preexistentes.

Depois disso, "cout" é usado para imprimir a linha exata de informações escritas em aspas. Então "CIN" é usado para receber a entrada do usuário. Em seguida, a palavra -chave "automática" é usada para encontrar o item no contêiner "M1".

int main ()

int n;
mapa m1 = 1, "hello",
2, "Java",
3, "Python",
4, "Ruby",
5, "React",
6, "angular",;
coutn;
item automático = m1.encontre (n);

Após a declaração, a condição IF-Else é usada. Na instrução IF, verificamos o item se ele estiver disponível no contêiner M1, então imprima o item. Se não estiver no contêiner "M1", ele mostra a mensagem de erro que foi escrita no "cout".

if (item != m1.fim())

cout << "Key exists!" << endl << "The Key at index "

outro

cout <<"Key does not exist!" << endl << "Sorry for inconvenience."
<< endl <<"Please try again with correct key index from 1 to 6";

No final da função principal (), retornaremos o "exit_success" que indica que o programa é executado com sucesso.

return exit_success;

Aqui está a ilustração completa da função map :: search (), que é empregada para localizar o componente usando o valor da chave fornecido pelo usuário.

Depois de compilar o programa acima, ele mostrará a seguinte mensagem de que o usuário deve inserir o índice de chaves que deseja encontrar. Os usuários precisam inserir o índice de chave da faixa de 1 a 6.

Como você pode ver abaixo, quando o usuário inserir o 1 Índice de Chaves, mostra a mensagem de que a tecla existe!”E a chave no índice 1 é“ olá ”.

Se o usuário inserir a chave do índice acima do intervalo de 1 a 6, o compilador gera a mensagem de erro que “por favor, tente novamente com a tecla de índice correta de 1 a 6”.

Exemplo 02: Use a função mapa :: search () para exibir todos os componentes depois de descobrir um componente

Vamos dar outro exemplo para imprimir todos os componentes do pedido aleatório depois de descobrir um componente. Para evitar problemas durante a compilação e execução de código, incluímos os “bits/stdc++.Arquivo de cabeçalho H ”no código. A função principal () foi inicializada após a biblioteca do cabeçalho e o "namespace std" foram adicionados. Na função Main (), inicializamos o contêiner M1. Então os valores são inseridos em ordem aleatória. Após essa declaração "cout", é usada para imprimir a saída, o mesmo escrito em aspas. Em seguida, a condição "for" é aplicada para encontrar a posição na qual "2" está presente usando a função find (). Depois retorne 0, o que implica que o programa é executado com sucesso.

#incluir
usando namespace std;
int main ()

mapa m1;
M1.inserir (2, 101);
M1.inserir (1, 689);
M1.inserir (3, 350);
M1.inserir (6, 991);
M1.inserir (4, 541);
M1.inserir (5, 542);
cout << "Elements from position 2 onward are: "<cout << "KEY\tELEMENT"<para (Auto Iterator = M1.Encontre (2); iterador != m1.fim(); iterator ++)

cout
retornar 0;

Aqui está a saída do programa compilado:

Conclusão

Este artigo apresentou exemplos suficientes para ilustrar o funcionamento do método mapa :: search () da linguagem C ++. Discutimos o mapa :: search () trabalhando em c++. Também discutimos as vantagens, parâmetros e valor retornado do mapa :: search () função. No final, compilamos alguns exemplos para ajudar o usuário a pesquisar o componente com um valor chave em c++.