Tablica służy do przechowywania wielu danych, a liczby elementów tablicy nie można zmienić w czasie wykonywania. Ten problem można rozwiązać za pomocą wektora, który działa jak tablica dynamiczna. W klasie wektorowej istnieją różne funkcje do dodawania i usuwania elementu z wektora. Funkcja erase() służy do usuwania jednego lub więcej 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, iterator pozycja_końcowa);
Powyższa funkcja erase() służy do usuwania wielu elementów z wektora na podstawie pozycji wymienionej w pierwszym i drugim argumencie tej funkcji.
Warunek wstępny:
Przed sprawdzeniem przykładów z tego samouczka musisz sprawdzić, czy kompilator g++ jest zainstalowany w systemie. Jeśli używasz Visual Studio Code, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C++ w celu utworzenia kodu wykonywalnego. Tutaj aplikacja Visual Studio Code została użyta do kompilacji i wykonania kodu C++. 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 użyto wektora wartości łańcuchowych. Wartości wektora zostały wydrukowane przed i po usunięciu pierwszego elementu z wektora za pomocą funkcji erase() z jednym parametrem.
//Dołącz niezbędne biblioteki#włączać
#włączać
za pomocą przestrzeń nazwgodziny;
//Wyświetl wartości wektora
próżniawektor_wyświetlany(wektor<strunowy>owoce)
{
//Zainicjuj licznik
intlicznik= 1;
//Iteruj i drukuj elementy wektora za pomocą pętli
dla (automatycznyon=owoce.rozpocząć();on!=owoce.kończyć się();on++)
{
//Sprawdź, czy elementy są ostatnim elementem, czy nie
Jeśli(licznik!=owoce.rozmiar())
koszt << *on<< ',';
w przeciwnym razie
koszt << *on;
//Zwiększ licznik o 1
licznik++;
}
koszt <<koniec;
}
intGłówny(próżnia) {
//Zadeklaruj wektor danych łańcuchowych
wektor<strunowy>owoce= { 'Pomarańczowy','Banan','Mango','Chlebowiec różnolistny',„Liczi” };
//Wydrukuj istniejące wartości wektora
koszt << 'Wartości wektora przed usunięciem: ' <<koniec;
wektor_wyświetlany(owoce);
//Usuń pierwszy element z wektora
owoce.usuwać(owoce.rozpocząć());
//Wydrukuj istniejące wartości wektora po usunięciu
koszt << ' Wartości wektora po usunięciu: ' <<koniec;
wektor_wyświetlany(owoce);
powrót 0;
}
Wyjście:
Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu.
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. Użyto tutaj dwóch iteratorów do ustawienia zakresu elementów usuniętych z wektora. Funkcja erase() została użyta z dwoma parametrami do usunięcia wielu elementów z wektora.
//Dołącz niezbędne biblioteki#włączać
#włączać
za pomocą przestrzeń nazwgodziny;
//Wyświetl wektor
próżniawektor_wyświetlany(wektor<int>liczba)
{
//Wydrukuj wartości wektora za pomocą pętli
dla(automatycznyon=licz.rozpocząć();on!=licz.kończyć się() ;on++)
koszt << *on<< '';
//Dodaj nową linię
koszt << ' ';
}
intGłówny() {
//Zadeklaruj wektor danych całkowitych
wektor<int>intArray{ 678,435,960,231,800,387,634,267,409,294};
//Wydrukuj istniejące wartości wektora
koszt << 'Wartości wektora przed usunięciem: ' <<koniec;
wektor_wyświetlany(intArray);
//Zadeklaruj dwa iteratory, aby usunąć zakres elementów z wektora
wektor<int> :: iteratorstartEle, endEle;
//Ustaw iterator na pierwszą pozycję
startEle=inArray.rozpocząć();
//Zwiększ początkowy iterator o 2
osiągnięcie(startEle,2);
//Ustaw iterator na ostatnią pozycję
endEle=inArray.kończyć się();
//Zmniejsz końcowy iterator o 3
osiągnięcie(koniecEle,-3);
//Usuń zakres elementów
inArray.usuwać(startEle, endEle);
//Wydrukuj istniejące wartości wektora po usunięciu
koszt << ' Wartości wektora po usunięciu: ' <<koniec;
wektor_wyświetlany(intArray);
powrót 0;
}
Wyjście:
Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu. Zgodnie z zakresem iteratorów, elementy od 3 do 7 pozycji wektora zostały usunięte.
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 został zadeklarowany wektor składający się z 7 elementów całkowitych. Następnie pętla „for” wykorzystała 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#włączać
#włączać
za pomocą przestrzeń nazwgodziny;
intGłówny()
{
//Zadeklaruj wektor danych całkowitych
wektor<int>liczby= { 78,Cztery pięć,67,25,98,75,52 };
koszt << „Wartości wektora przed usunięciem: ';
dla (int stały &i:liczby) {
koszt <<i<< '';
}
koszt <<koniec;
//Usuń z wektora liczby niepodzielne przez 5
dla (automatycznyon=liczby.rozpocząć();on!=liczby.kończyć się();on++)
{
//Sprawdź, czy liczba jest podzielna przez 5, czy nie
Jeśli (*on% 5 != 0)
{
//Usuń element na podstawie iteratora
liczby.usuwać(on-);
}
}
koszt << „Wartości wektora po usunięciu: ';
dla (int stały &i:liczby) {
koszt <<i<< '';
}
koszt <<koniec;
powrót 0;
}
Wyjście:
Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu. Dane wyjściowe pokazują, że wektor zawiera elementy podzielne tylko 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 pojedynczy, jak i wiele elementów z dowolnej pozycji wektora można usunąć za pomocą funkcji vector erase().