Метод erase
Метод erase класса unordered_map удаляет элементы из ассоциативного контейнера. Существует три перегрузки метода. Первая принимает ключ и удаляет элемент с этим ключом, возвращая количество удалённых элементов. Вторая принимает итератор и удаляет элемент, на который он указывает, возвращая итератор на следующий элемент. Третья принимает два итератора и удаляет диапазон элементов [first, last), возвращая итератор на элемент, следующий за последним удалённым.
Синтаксис
umap.erase(key);
umap.erase(iterator);
umap.erase(first, last);
Пример
Давайте удалим элемент с ключом "b" и выведем размер контейнера до и после удаления:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, int> umap = {
{"a", 1},
{"b", 2},
{"c", 3}
};
cout << "Size before: " << umap.size() << endl;
size_t res = umap.erase("b");
cout << "Erased: " << res << endl;
cout << "Size after: " << umap.size() << endl;
return 0;
}
Результат выполнения кода:
"Size before: 3"
"Erased: 1"
"Size after: 2"
Пример
Давайте удалим элемент по итератору, найденному с помощью метода find:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, int> umap = {
{"a", 1},
{"b", 2},
{"c", 3}
};
auto it = umap.find("b");
if (it != umap.end()) {
umap.erase(it);
}
for (const auto& pair : umap) {
cout << pair.first << ":" << pair.second << " ";
}
return 0;
}
Результат выполнения кода:
"a:1 c:3 "
Пример
Давайте удалим диапазон элементов от начала до элемента с ключом "c":
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, int> umap = {
{"a", 1},
{"b", 2},
{"c", 3},
{"d", 4}
};
auto it = umap.find("c");
umap.erase(umap.begin(), it);
for (const auto& pair : umap) {
cout << pair.first << ":" << pair.second << " ";
}
return 0;
}
Результат выполнения кода:
"c:3 d:4 "
Смотрите также
-
класс
unordered_map,
который представляет хеш-таблицу -
метод
insert,
который вставляет элементы в контейнер -
метод
find,
который ищет элемент по ключу -
метод
count,
который возвращает количество элементов с заданным ключом