Função Vector Erase() em C++

Funcao Vector Erase Em C



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().