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

Vector Erase Function C



A matriz é usada para armazenar vários dados e o número de elementos da matriz 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 no tempo de execução que diminui o tamanho do vetor. Os usos desta função foram explicados neste tutorial.

Sintaxe:

Dois tipos de sintaxe dessa função são fornecidos a seguir.







apagamento de iterador(posição do iterador);

A função erase () acima é usada para remover um único elemento do vetor, retorna um iterador e aponta para o elemento que é seguido pelo último elemento apagado.



apagamento de iterador(iterator initial_position, iterator final_position);

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 verificar 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 de excluir o primeiro elemento do vetor usando a função erase () com um parâmetro.

// Incluir bibliotecas necessárias

#incluir

#incluir

usando namespacehoras;

// Mostra os valores do vetor

vaziodisplay_vector(vetor<fragmento>frutas)

{

// Inicializa o contador

intcontador= 1;

// Iterar e imprimir os elementos do vetor usando loop

para (autoele=frutas.começar();ele!=frutas.fim();ele++)

{

// Verifique se os elementos são o último elemento ou não

E se(contador!=frutas.Tamanho())

custo << *ele<< ',';

outro

custo << *ele;

// Incrementa o contador em 1

contador++;

}

custo <<endl;

}

inta Principal(vazio) {

// Declara um vetor de dados de string

vetor<fragmento>frutas= { 'Laranja','Banana','Manga','Jaca','Lichi' };

// Imprime os valores existentes do vetor

custo << 'Os valores do vetor antes de remover:' <<endl;

display_vector(frutas);

// Remova o primeiro elemento do vetor

frutas.apagar(frutas.começar());

// Imprime os valores existentes do vetor após remover

custo << ' nOs valores do vetor após remover: ' <<endl;

display_vector(frutas);

Retorna 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.

// Incluir bibliotecas necessárias

#incluir

#incluir

usando namespacehoras;

// Mostra o vetor

vaziodisplay_vector(vetor<int>nums)

{

// Imprime os valores do vetor usando loop

para(autoele=nums.começar();ele!=nums.fim() ;ele++)

custo << *ele<< '';

// Adicionar nova linha

custo << ' n';

}

inta Principal() {

// Declara um vetor de dados inteiros

vetor<int>intArray{ 678,435,960,231,800,387,634,267,409,294};

// Imprime os valores existentes do vetor

custo << 'Os valores do vetor antes de remover:' <<endl;

display_vector(intArray);

// Declare dois iteradores para remover o intervalo de elementos do vetor

vetor<int> :: iteradorstartEle, endEle;

// Defina o iterador para a primeira posição

assustar=intArray.começar();

// Incrementa o iterador inicial em 2

avançar(assustar,2);

// Defina o iterador para a última posição

endEle=intArray.fim();

// Diminui o iterador final em 3

avançar(endEle,-3);

// Remova o intervalo de elementos

intArray.apagar(startEle, endEle);

// Imprime os valores existentes do vetor após remover

custo << ' nOs valores do vetor após remover: ' <<endl;

display_vector(intArray);

Retorna 0;

}

Saída:

A seguinte saída aparecerá após a execução do código acima. De acordo com o alcance dos iteradores, os elementos da 3ª posição até a 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’ é usado para iterar os elementos do vetor e remover os elementos do vetor que não são divisíveis por 5.

// Incluir bibliotecas necessárias

#incluir

#incluir

usando namespacehoras;

inta Principal()

{

// Declara um vetor de dados inteiros

vetor<int>números= { 78,Quatro cinco,67,25,98,75,52 };

custo << 'Os valores do vetor antes de remover: n';

para (int const Eeu:números) {

custo <<eu<< '';

}

custo <<endl;

// Remova os números do vetor que não são divisíveis por 5

para (autoele=números.começar();ele!=números.fim();ele++)

{

// Verifique se o número é divisível por 5 ou não

E se (*ele% 5 != 0)

{

// Remova o elemento com base no iterador

números.apagar(ele-);

}

}

custo << 'Os valores do vetor após a remoção: n';

para (int const Eeu:números) {

custo <<eu<< '';


}


custo <<endl;


Retorna 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 os elementos divisíveis por 5 apenas e outros elementos foram removidos.

Conclusão:

Diferentes usos da função erase () foram mostrados neste tutorial para remover elementos do vetor. O C ++ possui muitas outras funções para remover o elemento do vetor, e essas funções podem remover o único elemento de cada vez. Mas os elementos simples e múltiplos de qualquer posição do vetor podem ser removidos usando a função erase () do vetor.