Удаление одного элемента в multiset в C++
Удаление в multiset зависит от того, передают итератор или сам ключ.
Метод erase с итератором убирает ровно
один элемент на этой позиции - остальные
равные ключи остаются. Запишем multiset,
найдем одну копию числа и снимем ее:
#include <set>
std::multiset<int> nums = {1, 1, 2};
auto it = nums.find(1);
nums.erase(it);
for (int x : nums) {
std::cout << x << "\n";
}
Если передать ключ, исчезнут все элементы с этим ключом сразу:
#include <set>
std::multiset<int> vals = {5, 5, 5, 7};
vals.erase(5);
for (int x : vals) {
std::cout << x << "\n";
}
Дан multiset 3, 3, 4.
Удалите одну копию 3 по итератору
и выведите count для 3.