Funkcja Vector Erase() w C++

Funkcja Vector Erase W C



Tablica służy do przechowywania wielu danych, a liczby elementów tablicy nie można zmienić w czasie wykonywania. Problem ten można rozwiązać za pomocą wektora działającego jak tablica dynamiczna. W klasie wektorów istnieją różne funkcje służące do dodawania i usuwania elementów z wektora. Funkcja erase() służy do usuwania jednego lub większej liczby elementów z wektora w czasie wykonywania, co zmniejsza rozmiar wektora. Zastosowania tej funkcji zostały wyjaśnione w tym samouczku.

Składnia:

Poniżej podano dwa rodzaje składni tej funkcji.







kasowanie iteratora ( pozycja iteratora ) ;

Powyższa funkcja erase() służy do usunięcia pojedynczego elementu z wektora, zwraca iterator i wskazuje element, po którym następuje ostatni usunięty element.



kasowanie iteratora ( iterator pozycja_początkowa, pozycja_końcowa iteratora ) ;

Powyższa funkcja erase() służy do usuwania wielu elementów z wektora w oparciu o pozycję wymienioną w pierwszym i drugim argumencie tej funkcji.



Warunek wstępny:

Przed sprawdzeniem przykładów w tym samouczku musisz sprawdzić, czy w systemie jest zainstalowany kompilator g++. Jeśli używasz Visual Studio Code, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C++ w celu utworzenia kodu wykonywalnego. W tym przypadku do skompilowania i wykonania kodu C++ użyto aplikacji Visual Studio Code. Poniżej pokazano różne zastosowania funkcji erase() do wstawiania elementów do wektora.





Przykład-1: Usuń pierwszy element elementu

Utwórz plik C++ z następującym kodem, aby usunąć element z początku wektora. W kodzie wykorzystano wektor wartości łańcuchowych. Wartości wektora zostały wydrukowane przed i po usunięciu pierwszego elementu wektora za pomocą funkcji Erase() z jednym parametrem.

//Dołącz niezbędne biblioteki

#include

#uwzględnij

za pomocą przestrzeń nazw st ;

//Wyświetl wartości wektora

próżnia wektor_wyświetlania ( wektor < strunowy > owoce )

{

//Zainicjuj licznik

wew lada = 1 ;

//Iteruj i drukuj elementy wektora za pomocą pętli

Do ( automatyczny On = owoce. zaczynać ( ) ; On ! = owoce. koniec ( ) ; On ++ )

{

//Sprawdź, czy elementy są ostatnim elementem, czy nie

Jeśli ( lada ! = owoce. rozmiar ( ) )

cout << * On << „”, „ ;

w przeciwnym razie

cout << * On ;

//Zwiększ licznik o 1

lada ++ ;

}

cout << koniec ;

}

wew główny ( próżnia ) {

//Zadeklaruj wektor danych w postaci ciągu znaków

wektor < strunowy > owoce = { 'Pomarańczowy' , 'Banan' , 'Mango' , 'Chlebowiec różnolistny' , liczi } ;

//Wydrukuj istniejące wartości wektora

cout << „Wartości wektora przed usunięciem: „ << koniec ;

wektor_wyświetlania ( owoce ) ;

//Usuń pierwszy element z wektora

owoce. usuwać ( owoce. zaczynać ( ) ) ;

//Wydrukuj istniejące wartości wektora po usunięciu

cout << ' \N Wartości wektora po usunięciu: ' << koniec ;

wektor_wyświetlania ( owoce ) ;

powrót 0 ;

}

Wyjście:

Po wykonaniu powyższego kodu pojawią się następujące dane wyjściowe.



Przykład-2: Usuń wiele elementów

Utwórz plik C++ z następującym kodem, aby usunąć wiele elementów z wektora za pomocą funkcji erase(). W kodzie zastosowano wektor wartości całkowitych. Zastosowano tu dwa iteratory w celu ustalenia zakresu elementów usuwanych z wektora. Zastosowano funkcję kasowania() z dwoma parametrami w celu usunięcia wielu elementów z wektora.

//Dołącz niezbędne biblioteki

#uwzględnij

#include

za pomocą przestrzeń nazw st ;

//Wyświetl wektor

próżnia wektor_wyświetlania ( wektor < wew > liczby )

{

//Wydrukuj wartości wektora za pomocą pętli

Do ( automatyczny On = liczby. zaczynać ( ) ; On ! = liczby. koniec ( ) ; On ++ )

cout << * On << ' ' ;

//Dodaj nową linię

cout << ' \N ' ;

}

wew główny ( ) {

//Zadeklaruj wektor danych całkowitych

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

//Wydrukuj istniejące wartości wektora

cout << „Wartości wektora przed usunięciem: „ << koniec ;

wektor_wyświetlania ( intArray ) ;

//Zadeklaruj dwa iteratory, aby usunąć zakres elementów z wektora

wektor < wew > :: iterator startEle, koniecEle ;

//Ustaw iterator na pierwszą pozycję

rozpocznij je = intArray. zaczynać ( ) ;

//Zwiększ początkowy iterator o 2

osiągnięcie ( zacznij je, 2 ) ;

//Ustaw iterator na ostatnią pozycję

koniecEle = intArray. koniec ( ) ;

//Zmniejsz iterator końcowy o 3

osiągnięcie ( koniecEle, - 3 ) ;

//Usuń zakres elementów

intArray. usuwać ( startEle, koniecEle ) ;

//Wydrukuj istniejące wartości wektora po usunięciu

cout << ' \N Wartości wektora po usunięciu: ' << koniec ;

wektor_wyświetlania ( intArray ) ;

powrót 0 ;

}

Wyjście:

Po wykonaniu powyższego kodu pojawią się następujące dane wyjściowe. Zgodnie z zakresem iteratorów usunięto elementy od 3. do 7. pozycji wektora.

Przykład 3: Usuń określone elementy

Utwórz plik C++ z następującym kodem, aby usunąć określone elementy wektora za pomocą funkcji erase(). W kodzie zadeklarowano wektor składający się z 7 elementów całkowitych. Następnie pętla „for” została użyta do iteracji elementów wektora i usunięcia z wektora tych elementów, które nie są podzielne przez 5.

//Dołącz niezbędne biblioteki

#include

#uwzględnij

za pomocą przestrzeń nazw st ;

wew główny ( )

{

//Zadeklaruj wektor danych całkowitych

wektor < wew > liczby = { 78 , Cztery pięć , 67 , 25 , 98 , 75 , 52 } ;

cout << „Wartości wektora przed usunięciem: \N ' ;

Do ( wew konst & I : liczby ) {

cout << I << '' ;

}

cout << koniec ;

//Usuń z wektora liczby, które nie są podzielne przez 5

Do ( automatyczny On = liczby. zaczynać ( ) ; On ! = liczby. koniec ( ) ; On ++ )

{

//Sprawdź, czy liczba jest podzielna przez 5, czy nie

Jeśli ( * On % 5 ! = 0 )

{

//Usuń element oparty na iteratorze

liczby. usuwać ( On -- ) ;

}

}

cout << „Wartości wektora po usunięciu: \N ' ;

Do ( wew konst & I : liczby ) {

cout << I << '' ;


}


cout << koniec ;


powrót 0 ;

}

Wyjście:

Po wykonaniu powyższego kodu pojawią się następujące dane wyjściowe. Wynik pokazuje, że wektor zawiera tylko elementy podzielne przez 5, a inne elementy zostały usunięte.

Wniosek:

W tym samouczku pokazano różne zastosowania funkcji erase() do usuwania elementów wektorowych. C++ ma wiele innych funkcji do usuwania elementu z wektora, a te funkcje mogą usuwać pojedynczy element na raz. Ale zarówno pojedyncze, jak i wielokrotne elementy z dowolnej pozycji wektora można usunąć za pomocą funkcji kasowania wektorów ().