O array é usado para armazenar vários dados e o número de elementos do array não pode ser alterado em tempo de execução. Este problema pode ser resolvido usando um vetor que funciona como um array dinâmico. Existem diferentes funções na classe de vetor para adicionar e remover um elemento do vetor. A função erase() é usada para remover um ou mais elementos do vetor em tempo de execução que diminui o tamanho do vetor. Os usos desta função foram explicados neste tutorial.
Sintaxe:
Dois tipos de sintaxe desta função são fornecidos a seguir.
apagamento do iterador ( posição do iterador ) ;
A função erase() acima é usada para remover um único elemento do vetor e retorna um iterador e aponta para o elemento que é seguido pelo último elemento apagado.
apagamento do iterador ( posição_inicial do iterador, posição_final do iterador ) ;
A função erase() acima é usada para remover vários elementos do vetor com base na posição mencionada no primeiro e segundo argumentos desta função.
Pré-requisito:
Antes de conferir os exemplos deste tutorial, é necessário verificar se o compilador g++ está instalado ou não no sistema. Se você estiver usando o Visual Studio Code, instale as extensões necessárias para compilar o código-fonte C++ para criar o código executável. Aqui, o aplicativo Visual Studio Code foi usado para compilar e executar o código C++. Diferentes usos da função erase() para inserir elemento(s) em um vetor são mostrados abaixo.
Exemplo 1: Remova o primeiro elemento do elemento
Crie um arquivo C++ com o código a seguir para remover um elemento do início do vetor. Um vetor de valores de string foi usado no código. Os valores do vetor foram impressos antes e depois da exclusão do primeiro elemento do vetor usando a função erase() com um parâmetro.
//Inclui bibliotecas necessárias#include
#incluir
usando espaço para nome padrão ;
//Mostra os valores do vetor
vazio display_vector ( vetor < corda > frutas )
{
//Inicializa o contador
interno contador = 1 ;
//Itera e imprime os elementos do vetor usando loop
para ( auto ele = frutas. começar ( ) ; ele ! = frutas. fim ( ) ; ele ++ )
{
//Verifica se os elementos são o último elemento ou não
se ( contador ! = frutas. tamanho ( ) )
corte << * ele << ',' ;
outro
corte << * ele ;
//Incrementa o contador em 1
contador ++ ;
}
corte << fim ;
}
interno principal ( vazio ) {
//Declara um vetor de dados string
vetor < corda > frutas = { 'Laranja' , 'Banana' , 'Manga' , 'Jaca' , Lichia } ;
//Imprime os valores existentes do vetor
corte << 'Os valores do vetor antes de remover:' << fim ;
display_vector ( frutas ) ;
//Remove o primeiro elemento do vetor
frutas. apagar ( frutas. começar ( ) ) ;
//Imprime os valores existentes do vetor após remover
corte << ' \n Os valores do vetor após a remoção: ' << fim ;
display_vector ( frutas ) ;
retornar 0 ;
}
Saída:
A seguinte saída aparecerá após a execução do código acima.
Exemplo 2: Remover vários elementos
Crie um arquivo C++ com o código a seguir para remover os vários elementos do vetor usando a função erase(). Um vetor de valores inteiros foi usado no código. Dois iteradores foram usados aqui para definir o intervalo de elementos removidos do vetor. A função erase() foi usada com dois parâmetros para remover vários elementos do vetor.
//Inclui bibliotecas necessárias#incluir
#include
usando espaço para nome padrão ;
//Mostra o vetor
vazio display_vector ( vetor < interno > números )
{
//Imprime os valores do vetor usando loop
para ( auto ele = números. começar ( ) ; ele ! = números. fim ( ) ; ele ++ )
corte << * ele << ' ' ;
//Adiciona nova linha
corte << ' \n ' ;
}
interno principal ( ) {
//Declara um vetor de dados inteiros
vetor < interno > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Imprime os valores existentes do vetor
corte << 'Os valores do vetor antes de remover:' << fim ;
display_vector ( intArray ) ;
//Declara dois iteradores para remover o intervalo de elementos do vetor
vetor < interno > :: iterador startEle, endEle ;
//Define o iterador para a primeira posição
comece-os = matriz interna. começar ( ) ;
//Incrementa o iterador inicial em 2
avançar ( iniciá-los, 2 ) ;
//Define o iterador para a última posição
fimEle = matriz interna. fim ( ) ;
//Decrementa o iterador final em 3
avançar ( fimEle, - 3 ) ;
//Remove o intervalo de elementos
matriz interna. apagar ( startEle, endEle ) ;
//Imprime os valores existentes do vetor após remover
corte << ' \n Os valores do vetor após a remoção: ' << fim ;
display_vector ( intArray ) ;
retornar 0 ;
}
Saída:
A seguinte saída aparecerá após a execução do código acima. De acordo com o intervalo dos iteradores, os elementos da 3ª à 7ª posição do vetor foram removidos.
Exemplo 3: Remova os elementos específicos
Crie um arquivo C++ com o código a seguir para remover os elementos específicos do vetor usando a função erase(). Um vetor de 7 elementos inteiros foi declarado no código. Em seguida, o loop ‘for’ foi usado para iterar os elementos do vetor e remover os elementos do vetor que não são divisíveis por 5.
//Inclui bibliotecas necessárias#include
#incluir
usando espaço para nome padrão ;
interno principal ( )
{
//Declara um vetor de dados inteiros
vetor < interno > números = { 78 , Quatro cinco , 67 , 25 , 98 , 75 , 52 } ;
corte << 'Os valores do vetor antes de remover: \n ' ;
para ( interno const & eu : números ) {
corte << eu << ' ' ;
}
corte << fim ;
//Remove do vetor os números que não são divisíveis por 5
para ( auto ele = números. começar ( ) ; ele ! = números. fim ( ) ; ele ++ )
{
//Verifica se o número é divisível por 5 ou não
se ( * ele % 5 ! = 0 )
{
//Remove o elemento com base no iterador
números. apagar ( ele -- ) ;
}
}
corte << 'Os valores do vetor após a remoção: \n ' ;
para ( interno const & eu : números ) {
corte << eu << ' ' ;
}
corte << fim ;
retornar 0 ;
}
Saída:
A seguinte saída aparecerá após a execução do código acima. A saída mostra que o vetor contém apenas os elementos divisíveis por 5 e outros elementos foram removidos.
Conclusão:
Diferentes usos da função erase() foram mostrados neste tutorial para remover elementos vetoriais. O C++ tem muitas outras funções para remover o elemento do vetor, e essas funções podem remover um único elemento de cada vez. Mas tanto elementos únicos quanto múltiplos de qualquer posição do vetor podem ser removidos usando a função vector erase().