📜  C++ STL-Multiset.erase()函数(1)

📅  最后修改于: 2023-12-03 14:59:46.009000             🧑  作者: Mango

C++ STL-Multiset.erase()函数

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之间的元素。