C ++ MultiMap

C ++ MultiMap
Hoje, aprenderemos sobre o MultiMap e por que usamos multimap. Aprenderemos a implementação da escrita e as funções importantes do multimap através de exemplos detalhados. Mas, antes de pular no multimap, aprenderemos sobre o básico do mapa em C ++ para que seja fácil aprender como o multimap funcionará.

Em C ++, os mapas são os recipientes que armazenam os elementos de dados em pares de valor-chave. Nos mapas, esses pares de valor-chave retêm elementos de dados. Isso significa que toda chave tem seu valor de elemento, mas a chave deve ser única para ser acessada rapidamente. Por padrão, os pares de valor-chave são organizados em ordem classificada.

Introdução

Em C ++, multimaps são o recipiente que retém os elementos em pares de valor-chave de maneira organizada para que possam trabalhar com eficiência e rapidez. Esses valores -chave são usados ​​para organizar os elementos e identificados exclusivamente para que o conteúdo relacionado a essa chave seja armazenado em valores mapeados. A única diferença significativa entre o multimap e o mapa é a possibilidade de chaves repetidas que não são únicas e usa o “<” operator to compare the keys.

Sintaxe

No MultiMAP STL, escreveremos a palavra -chave "modelo" para passar o tipo de dados como um parâmetro, para que não precisemos escrever o código para cada tipo de dados e depois escrever o "" maior que o operador para fechar a classe multimap.

Parâmetros

chave: é usado para dizer o tipo de chave para armazenar a chave em um multimap.

tipo: é usado para informar o tipo de dados do valor mapeado em um multimap.

comparar: é um parâmetro opcional e permite comparar dois valores de elemento como teclas de classificação para descobrir como elas devem ser organizadas no multimap. Como padrão, o predicado binário menos é usado.

aloc: é usado para alocar os valores em multimap.

Exemplo

Aqui está um exemplo simples do multimap. Vamos começar descrevendo a implementação do exemplo e também entendemos o que fizemos neste exemplo. Mas, antes disso, precisamos de um compilador C ++, onde escrevemos e executamos o código de exemplo. Então, abra o compilador C ++.

Incluindo bibliotecas básicas

Em todos os programas de C ++, precisamos incluir as bibliotecas importantes e básicas relacionadas ao nosso programa para que não precisemos escrever o código da função predefinida de C++. Ao usar pacotes, nosso código será preciso e fácil de entender, e também compilará com eficiência. Escrevemos o sinal "#" para cada pacote que direcionará o compilador a carregar o arquivo de cabeçalho. Em seguida, escreveremos a palavra -chave "incluir" para que o compilador entenda que estamos incluindo qualquer pacote em c++. Então abrimos o operador "".

Neste exemplo, usamos três bibliotecas; "Iostream" insere os dados do usuário e exibe os dados para o usuário. O segundo é "String"; portanto, se usarmos algum valor de string em todo o programa, precisamos incluir o pacote de string, e o terceiro é "mapa" porque estamos usando técnicas de mapeamento em nosso programa.

#incluir
#incluir
#incluir
usando namespace std;

Declarando e inicializando os pares de valor-chave

Em seguida, escrevemos a função principal () no programa para que possamos escrever a linha de código real que queremos implementar. Primeiro, declararemos a tupla multimap chamada "Mulmap" do par de valores-chave "int" e "string" e inicialize alguns dados. Para string, escrevemos os dados em aspas duplas. Em seguida, verificamos o tamanho da tupla “Mulmap” usando a função de tamanho predefinido () concatenada com “Mulmap” e depois exibimos o tamanho usando o método predefinido cout (). Para exibir os elementos de uma tupla um por um, chamamos "para loop".

int main ()

MultiMap mulmap =
1, "Islamabad",
2, "Lahore",
3, "Multan",
4, "Karachi"
;
cout << "The size of multimap is: " << mulmap.size()
<cout << "Elements in multimap are: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
para (Auto ITR: MULMAP)
cout << "\t" << itr.first <<"\t\t"<< itr.second << endl;

Aqui está a saída da parte anterior do código. Como você vê, agora temos o tamanho da tupla multimap e os elementos dos pares de valores-chave.

Inserindo novos dados usando a função insert ()

Depois de declarar o multimap, queremos implementar uma das funções do multimap, que é a função insert (). Como já inserimos alguns dados na tupla multimap, queremos inserir alguns novos dados. Para isso, escreveremos o nome da tupla multimap, "Mulmap" e depois concatenará a função insert (). Nos suportes de mulmap, escreva a palavra-chave "make-par" porque estamos passando dados em forma de par em multimap e depois escreva o novo par em que queremos inserir dados na tupla "Mulmap" existente.

E então, usamos "para loop" para exibir os valores no shell um por um em ordem classificada. Depois de imprimir os pares do valor-chave, queremos verificar novamente o tamanho da tupla “Mulmap” atualizada, por isso usamos novamente a função Size () e passamos a função Size () no método cout () para que possamos ser exibir o tamanho do "Mulmap" para o usuário.

cout << "\nInserting New Elements in Multimap: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
Mulmap.inserir (make_pair (0, "rawalpindi"));
Mulmap.inserir (make_pair (5, "hyderabad"));
para (Auto ITR: MULMAP)
cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

cout <<"Elements in multimap after updating: " << mulmap.size() << endl;

Vejamos a saída do trecho de dados anterior no MultiMap, onde inserimos novos dados. Como você vê, os pares de valor-chave são exibidos de maneira organizada. E depois de atualizar os pares de valor-chave, temos o tamanho do multimap como 6.

Remoção de dados do multimap usando a função EASE ()

Para remover elementos de dados da tupla do Mulmap, usamos a função EASE () e passamos a função no método cout () para que possamos exibir a tupla "Mulmap" após remover elementos da tupla. Então, novamente, verificamos o tamanho da tupla “Mulmap” usando a função Size ().

cout<<"\nRemoving elements from multimap: \n";
cout<<"\tKEY\t\tELEMENT\n";
Mulmap.Apagar (Mulmap.BEGIN (), MULMAP.encontre (4));
para (Auto ITR: MULMAP)
cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

cout <<"Elements in multimap after removing: " << mulmap.size() << endl;

Aqui está a saída da parte ilustrada, que implementamos acima. Como mostrado abaixo, o tamanho da tupla “Mulmap” é 2:

Verifique o limite superior da tupla de mulmap existente

Para verificar o primeiro elemento da tupla atualizada de "multimap", usaremos a função Upper_bound () e passaremos o valor da chave para a função.

Cout << “\nElement on the Upper bound of multimap is: “ << endl;
cout<<”\tKEY\t\tELEMENT\n”;
cout << “\t” << mulmap.upper_bound(0)->primeiro << “\t\t” << mulmap.upper_bound(0)->segundo << endl;

Como você viu, passamos um valor 0 para a função Upper_bound (). No entanto, temos o limite superior do elemento -chave 4 porque agora a tupla “Mulmap” contém apenas dois elementos -chave, e a superior é exibida abaixo:

Verifique o limite inferior na tupla do Mulmap existente

Agora, vamos verificar o último elemento da tupla “Mulmap” usando a função inferior_bound () do multimap e imprimindo -a através do método cout ().

cout << "\nElement on the lower bound of multimap is: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
cout << "\t" << mulmap.lower_bound(5)->primeiro << "\t\t" << mulmap.lower_bound(5)->segundo << endl;

Aqui está a saída do limite inferior da tupla “Mulmap”:

No final, retornaremos 0 à função Main () e fecharemos os aparelhos encaracolados:

Conclusão

Neste artigo, aprendemos o multimap implementando exemplos simples com explicações detalhadas. Discutimos o estilo de escrita do multimap. Também aprendemos algumas das funções importantes do MultiMap em C ++ com uma explicação detalhada de todas as linhas de código.