Introdução
Neste laboratório, você aprenderá sobre o funcionamento de um Multiset e sua implementação na linguagem de programação C++. Você aprenderá especificamente como usar o método erase() em um Set ou Multiset para deletar elementos.
Neste laboratório, você aprenderá sobre o funcionamento de um Multiset e sua implementação na linguagem de programação C++. Você aprenderá especificamente como usar o método erase() em um Set ou Multiset para deletar elementos.
Use qualquer editor de texto de sua preferência para criar um novo arquivo de código C++ chamado main.cpp no diretório do projeto ~/project.
cd ~/project
touch main.cpp
Insira o seguinte código no arquivo main.cpp. Os comentários explicam o código.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Função para imprimir os elementos do multiset usando um iterador
void show(multiset<int> s)
{
//declarando um iterador para iterar através do multiset
multiset<int>::iterator i;
for (i = s.begin(); i != s.end(); i++)
{
cout << *i << " "; //acessando os elementos do multiset usando * pois i armazena o endereço de cada elemento
}
cout << endl;
}
int main()
{
cout << "\n\nBem-vindo ao Lab do Método erase() de Set da STL\n\n\n";
cout << " ===== Programa para demonstrar o funcionamento de um Multiset, em CPP ===== \n\n\n\n";
cout << "*** Multisets são semelhantes a sets, com a exceção de que múltiplos elementos podem ter os mesmos valores. *** \n\n";
//Declaração do Set (Set de inteiros)
multiset<int> s;
//Preenchendo os elementos usando o método insert().
cout << "\n\nPreenchendo o Multiset com inteiros em ordem aleatória."; //Multiset automaticamente os armazena em ordem
s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);
cout << "\n\nO número de elementos no Multiset é: " << s.size();
cout << "\n\nOs elementos do Multiset são: ";
show(s);
multiset<int>::iterator it;
//Deletando todos os elementos do set que são menores que 54
s.erase(s.begin(), s.find(54));
cout << "\n\nApós deletar todos os elementos que são menores que 54, o Multiset se torna: ";
for (it = s.begin(); it != s.end(); it++)
{
cout << " " << *it;
}
cout << "\n\n\n";
return 0;
}
No terminal, compile o arquivo main.cpp usando o comando g++, e então execute o arquivo compilado.
g++ main.cpp -o main && ./main
Você deve ver a seguinte saída:
Welcome to STL Set erase() Method Lab
===== Program to demonstrate the working of a Multiset, in CPP =====
*** Multisets are similar to set, with an exception that multiple elements can have same values. ***
Filling the Multiset with integers in random order.
The number of elements in the Multiset are: 6
The elements of the Multiset are: 5 5 39 39 54 82
After deleting all the elements that are less than 54, the Multiset becomes : 54 82
Reserve um tempo para revisar o código e certifique-se de que você entende como o método erase() é usado para deletar elementos do Multiset.
//Deleting all the elements of the set that are less than 54
s.erase(s.begin(), s.find(54));
Este código usa o método erase() para deletar todos os elementos no Multiset desde o início até, mas não incluindo, o elemento com o valor 54. Assim, o Multiset resultante contém apenas os valores 54 e 82.
Neste laboratório, você aprendeu como usar o método erase() em um Set ou Multiset C++ para deletar elementos. Você também aprendeu como iterar através de um multiset usando um iterador e imprimir os elementos usando o método show(). Isso é útil ao depurar ou verificar o conteúdo de estruturas de dados complexas como Sets e Multisets.