📅  最后修改于: 2023-12-03 14:59:46.927000             🧑  作者: Mango
unordered_multiset
是C++ STL中的一种哈希表容器,类似于基于哈希表的 unordered_set
,但允许存储相同关键字的元素。 delete()
函数是用于删除 unordered_multiset
中指定元素的成员函数。
void unordered_multiset::delete(const value_type& value);
value
: 要删除的元素的值。delete()
函数接受一个参数,即要删除的元素的值。如果 unordered_multiset
中存在一个或多个与该值相等的元素,则该函数将删除所有这些元素。如果没有相等的元素,则该函数不执行任何操作。
该函数没有返回值。
以下代码演示如何使用 delete()
函数从 unordered_multiset
中删除元素。
#include <iostream>
#include <unordered_set>
int main() {
// 创建一个 unordered_multiset
std::unordered_multiset<int> numbers = {1, 2, 2, 3, 3, 3};
// 输出原始 unordered_multiset
std::cout << "Original unordered_multiset: ";
for (auto num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
// 删除所有值为 2 的元素
numbers.erase(2);
// 输出修改后的 unordered_multiset
std::cout << "Modified unordered_multiset: ";
for (auto num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
输出:
Original unordered_multiset: 1 2 2 3 3 3
Modified unordered_multiset: 1 3 3 3
unordered_multiset
中的元素数不会更改。unordered_multiset
中的第一个匹配项,请使用 unordered_multiset::erase()
函数。delete()
函数,因为这会使迭代器失效。相反,您可以使用 std::remove_if()
函数。delete()
函数是 unordered_multiset
提供的功能之一,它允许我们从 unordered_multiset
中删除指定的元素。函数接受一个参数,即要删除的元素的值。 如果 unordered_multiset
中存在一个或多个与该值相等的元素,则该函数将删除所有这些元素。如果没有相等的元素,则该函数不执行任何操作。