Metoda erase() usuwa element z dowolnego miejsca z wektorze, przesuwając o jeden w lewo elementy stojące za nim, zmniejszając odpowiednio wielkość wektora. Robi to w czasie liniowym w stosunku do elementów, które musi przesunąć. Do usunięcia danych z wektora wykorzystuje iterator, który należy ustawić na pozycję elementu do usunięcia. Jeśli jest potrzeba usunięcia pierwszej lub ostatniej wartości, możemy skorzystać z metod begin() i end(), które zwracają odpowiednio iterator wskazujący na pierwszzy i ostatni element wektora.
Zadanie. Wstaw do wektora liczby całkowite: 1 2 3 4 5, następnie usuń liczbę 2 i 4. Wypisz zawartość wektora przed i po usunięciu liczb.
//algorytm.edu.pl
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector <int> liczby;
vector <int>::iterator it;
//wstaw kolejno liczby: 1, 2, 3, 4 i 5 do wektora o nazwie liczby
liczby.push_back(1);
liczby.push_back(2);
liczby.push_back(3);
liczby.push_back(4);
liczby.push_back(5);
for(int i=0; i<liczby.size(); i++)
cout<<liczby[i]<<' ';
cout<<endl;
//ustaw iterator na drugi element wektora
it = liczby.begin() + 1;
//usunięcie liczby 2
liczby.erase (it);
//ustaw iterator na trzeci element wektora
it = liczby.begin() + 2;
//usunięcie liczby 4
liczby.erase (it);
for(int i=0; i<liczby.size(); i++)
cout<<liczby[i]<<' ';
return 0;
}
Zadanie. Wstaw do wektora liczby całkowite: 1 2 3 4 5, następnie usuń pierwszą i ostatnią wartość. Wypisz zawartość wektora przed i po usunięciu liczb.
//algorytm.edu.pl
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector <int> liczby;
//wstaw kolejno liczby: 1, 2, 3, 4 i 5 do wektora o nazwie liczby
liczby.push_back(1);
liczby.push_back(2);
liczby.push_back(3);
liczby.push_back(4);
liczby.push_back(5);
for(int i=0; i<liczby.size(); i++)
cout<<liczby[i]<<' ';
cout<<endl;
//usunięcie pierwszej liczby
liczby.erase (liczby.begin());
//usunięcie ostatniej liczby
liczby.erase (liczby.end());
for(int i=0; i<liczby.size(); i++)
cout<<liczby[i]<<' ';
return 0;
}