Метод erase класса set
Метод erase класса set удаляет элементы из множества.
Он имеет три перегрузки. В первой перегрузке мы передаем итератор,
указывающий на удаляемый элемент. Во второй перегрузке мы передаем
диапазон итераторов first и last, задающий элементы для удаления.
В третьей перегрузке мы передаем ключ (значение), которое нужно удалить
из множества.
Синтаксис
set.erase(iterator pos)
set.erase(iterator first, iterator last)
set.erase(const key_type& key)
Пример
Давайте создадим множество с элементами 1, 2, 3, 4, 5
и удалим элемент по ключу 3:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
st.erase(3);
for (int elem : st) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 4 5
Пример
Давайте удалим элемент по итератору. Сначала найдем элемент
со значением 3 с помощью метода find, а затем передадим
его в метод erase:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto it = st.find(3);
st.erase(it);
for (int elem : st) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 4 5
Пример
Давайте удалим диапазон элементов от 2 до 4 (не включая 4)
с помощью итераторов:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto first = st.find(2);
auto last = st.find(4);
st.erase(first, last);
for (int elem : st) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 4 5