📅  最后修改于: 2023-12-03 14:59:46.009000             🧑  作者: Mango
multiset
是一个集合容器,它可以存储任何类型的数据,但是数据是有序的。multiset.erase()
函数用于删除multiset中指定值的元素。
以下是multiset.erase()
函数的语法:
multiset.erase(position) // 删除multiset中指定迭代器位置的元素
multiset.erase(key_value) // 删除multiset中指定值的元素
multiset.erase(first_position, last_postion) // 删除multiset中指定迭代器位置之间的元素
position
: 指向将要删除的元素的迭代器位置。key_value
: 将要删除的元素的 值。first_position
: 用于定义范围的开始位置的迭代器。last_position
: 用于定义范围的结束位置的迭代器。multiset.erase()
函数没有返回任何值。
以下是multiset.erase()
函数的实例:
#include <iostream>
#include <set>
int main() {
std::multiset<int> nums{1, 2, 2, 3, 4, 5, 6, 6};
nums.erase(2); // 删除值为2的元素
for (int num : nums) {
std::cout << num << " "; // 输出1 3 4 5 6 6
}
auto pos = nums.find(3); // 获取值为3的第一个出现位置
nums.erase(pos); // 删除值为3的元素
for (int num : nums) {
std::cout << num << " "; // 输出1 4 5 6 6
}
auto start_pos = nums.find(4);
auto end_pos = nums.find(6); // 获取4和6的出现位置
nums.erase(start_pos, end_pos); // 删除4和6之间的元素,不包括6
for (int num : nums) {
std::cout << num << " "; // 输出1 6
}
return 0;
}
以上实例中,我们使用了multiset.erase()
函数对multiset
容器中的元素进行删除,分别删除了值为2,值为3和值为4到6之间的元素。