Funkcja usuwania wektora w C ++

Funkcja usuwania wektora w C ++

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 wektora istnieją różne funkcje, aby dodać i usunąć element z wektora. Funkcja Erase () służy do usunięcia jednego lub więcej elementów z wektora w czasie wykonywania, który zmniejsza wielkość wektora. Zastosowania tej funkcji zostały wyjaśnione w tym samouczku.

Składnia:

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

Iterator wymazujący (pozycja iteratora);

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

Iterator Erase (Iterator start_position, iterator ending_position);

Powyższa funkcja Erase () służy do usuwania wielu elementów z wektora na podstawie pozycji wymienionej w pierwszym i drugim argumentach tej funkcji.

Warunek wstępny:

Przed sprawdzeniem przykładów tego samouczka musisz sprawdzić, czy kompilator G ++ jest zainstalowany lub nie w systemie. Jeśli używasz kodu Visual Studio, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C ++, aby utworzyć kod wykonywalny. Tutaj aplikacja kodu Visual Studio została użyta do kompilacji i wykonania kodu C ++. Różne zastosowania funkcji Erase () do wstawienia elementów (ów) do wektora pokazano poniżej.

Przykład-1: Usuń pierwszy element elementu

Utwórz plik C ++ z następującym kodem, aby usunąć element od początku wektora. W kodzie zastosowano wektor wartości ciągu. 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ą przestrzeni nazw Std;
// Wyświetl wartości wektora
void display_vector (wektor owoce)

// zainicjuj licznik
int licznik = 1;
// iteruj i wydrukuj elementy wektora za pomocą pętli
dla (auto ele = owoce.zaczynać(); ele != owoce.koniec(); ele ++)

// Sprawdź elementy to ostatni element, czy nie
if (licznik != owoce.rozmiar())
Cout << *ele << ", ";
w przeciwnym razie
Cout << *ele;
// zwiększaj licznik o 1
licznik ++;

Cout << endl;

int main (void)
// deklaruj wektor danych ciągów
wektor owoce = „Orange”, „banana”, „mango”, „jack owoc”, „Lichi”;
// Wydrukuj istniejące wartości wektora
Cout << "The values of the vector before remove: " << endl;
display_vector (owoce);
// Wyjmij pierwszy element z wektora
owoce.usuń (owoce.zaczynać());
// Po usunięciu wydrukuj istniejące wartości wektora
Cout << "\nThe values of the vector after remove: " << endl;
display_vector (owoce);
powrót 0;

Wyjście:

Następujące 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. Do ustawienia zakresu elementów usunięte z wektora użyto dwóch iteratorów. 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ą przestrzeni nazw Std;
// Wyświetl wektor
void display_vector (wektor nums)

// Wydrukuj wartości wektora za pomocą pętli
dla (auto ele = nums.zaczynać(); ele != nums.koniec() ; ele ++)
Cout << *ele << " ";
// Dodaj nową linię
Cout << "\n";

int main ()
// zadeklaruj wektor danych liczb całkowitych
wektor INTARRAY 678, 435, 960, 231, 800, 387, 634, 267, 409, 294;
// Wydrukuj istniejące wartości wektora
Cout << "The values of the vector before remove: " << endl;
display_vector (inturay);
// zadeklaruj dwa iteratory w celu usunięcia zakresu elementów z wektora
wektor :: Iterator startele, Endele;
// Ustaw iterator na pierwszą pozycję
startele = inTARRAY.zaczynać();
// zwiększaj iterator początkowy o 2
Advance (startele, 2);
// Ustaw iterator na ostatnią pozycję
endele = inTARRAY.koniec();
// Zmniejsz końcowy iterator o 3
Advance (Endele, -3);
// usuń zakres elementów
INTARRAY.usunąć (startele, endele);
// Po usunięciu wydrukuj istniejące wartości wektora
Cout << "\nThe values of the vector after remove: " << endl;
display_vector (inturay);
powrót 0;

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Zgodnie z zakresem iteratorów elementy od trzeciej pozycji 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 (). Wektor 7 elementów całkowitych został zadeklarowany w kodzie. Następnie pętla „dla” użyto do iteracji elementów wektorowych i usunięcia tych elementów z wektora, które nie są podzielne przez 5.

// Dołącz niezbędne biblioteki
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

// zadeklaruj wektor danych liczb całkowitych
wektor liczby = 78, 45, 67, 25, 98, 75, 52;
Cout << "The values of the vector before remove:\n";
dla (int const i i: numery)
Cout << i << ";

Cout << endl;
// usuń liczby z wektora, które nie są podzielne przez 5
dla (auto ele = liczby.zaczynać(); ele != liczby.koniec(); ele ++)

// Sprawdź, czy liczba jest podzielna przez 5 lub nie
if (*ele % 5 != 0)

// Usuń element na podstawie iteratora
liczby.usunąć (ele--);


Cout << "The values of the vector after remove:\n";
dla (int const i i: numery)
Cout << i << ";

Cout << endl;
powrót 0;

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Wyjście pokazuje, ż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 () w celu usunięcia elementów wektorowych. C ++ ma wiele innych funkcji do usunięcia elementu z wektora, a funkcje te mogą usunąć pojedynczy element. Ale zarówno pojedyncze, jak i wiele elementów z dowolnej pozycji wektora można usunąć za pomocą funkcji wektorowej ().