Метод erase
Метод erase удаляет элементы из контейнера unordered_set.
Он имеет несколько перегрузок. В первом варианте мы передаем ключ
элемента, который нужно удалить. Во втором варианте мы передаем
итератор, указывающий на удаляемый элемент. В третьем варианте
мы передаем два итератора, задающих диапазон [first, last)
для удаления. Метод возвращает количество удаленных элементов
(для версии с ключом) или итератор, следующий за последним
удаленным элементом (для версии с итератором).
Синтаксис
// Удаление по ключу
size_type erase(const Key& key);
// Удаление по итератору
iterator erase(iterator pos);
// Удаление диапазона
iterator erase(iterator first, iterator last);
Пример
Давайте удалим элемент с ключом 3 из множества:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 3, 4, 5};
size_t count = uset.erase(3);
cout << "Erased: " << count << endl;
for (int elem : uset) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
"Erased: 1"
1 2 4 5
Пример
Давайте удалим элемент, используя итератор, указывающий на него:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 3, 4, 5};
auto it = uset.find(2);
if (it != uset.end()) {
uset.erase(it);
}
for (int elem : uset) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 3 4 5
Пример
Давайте удалим диапазон элементов, начиная с элемента 2 и заканчивая элементом 4:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 3, 4, 5};
auto first = uset.find(2);
auto last = uset.find(4);
if (first != uset.end() && last != uset.end()) {
uset.erase(first, last);
}
for (int elem : uset) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 4 5
Смотрите также
-
класс
unordered_set,
который представляет собой контейнер уникальных элементов -
метод
insert,
который добавляет элементы в множество -
метод
find,
который ищет элемент по ключу -
метод
contains,
который проверяет наличие элемента в множестве