📜  C++ STL中的多集delete()(1)

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

C++ STL中的多集[delete()]

简介

C++ STL(Standard Template Library)是C++标准库的一部分,提供了一组通用的数据结构和算法。STL中的多集(multiset)是一种可以存储相同值的有序集合,允许重复的元素存在。delete()是多集的成员函数之一,用于从多集中删除指定值的元素。

用法
#include <iostream>
#include <set>

int main() {
   std::multiset<int> mySet = {1, 2, 2, 3, 4, 4, 4};

   std::cout << "Before delete(): ";
   for (auto it = mySet.begin(); it != mySet.end(); ++it) {
       std::cout << *it << " ";
   }
   std::cout << std::endl;

   mySet.erase(mySet.find(2));  // 使用delete()删除元素值为2的元素

   std::cout << "After delete(): ";
   for (auto it = mySet.begin(); it != mySet.end(); ++it) {
       std::cout << *it << " ";
   }
   std::cout << std::endl;

   return 0;
}

输出:

Before delete(): 1 2 2 3 4 4 4
After delete(): 1 2 3 4 4 4

在以上示例中,我们首先创建了一个多集mySet,其中包含了一些重复的元素。然后我们使用delete()函数删除了多集中值为2的一个元素。最后,我们分别输出了删除前和删除后的多集。

注意事项
  • delete()函数只删除多集中的一个元素,即使多集中有多个相同元素值,只有一个会被删除。
  • 如果希望删除多集中所有的相同元素值,可以使用erase()函数结合循环来实现。