📜  C++ STL中的unordered_multiset delete()函数

📅  最后修改于: 2021-05-30 04:20:04             🧑  作者: Mango

unordered_multiset :: erase()函数是C++ STL中的内置函数,用于删除单个元素或具有确定值的所有元素,或从start(包括)到end(不包括)的一系列元素)。这通过删除元素的数量减少了容器的大小。

语法

参数:此函数具有三个版本。

  1. 第一个将迭代器作为参数,删除该位置上存在的元素。
  2. 第二个版本使用两个迭代器(例如start和end),并使用2个迭代器作为参数,并擦除[start,end)范围内的所有元素。
  3. 第三个版本将键值作为参数,并删除多重集中该值的所有元素。

返回值:如上述语法所示,函数的第1版和第2版将在删除的最后一个元素之后立即返回迭代器。第三个版本返回已删除元素的数量。

下面的程序说明了unordered_multiset :: erase()函数:
程序1

// C++ program to illustrate the
// unordered_multiset::erase() function
  
#include 
#include 
  
using namespace std;
  
int main()
{
    unordered_multiset samplemultiSet;
  
    // Inserting elements
    samplemultiSet.insert(10);
    samplemultiSet.insert(5);
    samplemultiSet.insert(15);
    samplemultiSet.insert(20);
    samplemultiSet.insert(25);
    samplemultiSet.insert(10);
    samplemultiSet.insert(15);
    samplemultiSet.insert(20);
  
    // Erases a particular element by its position
    samplemultiSet.erase(samplemultiSet.begin());
  
    // Displaying the set after removal
    for (auto it = samplemultiSet.begin(); 
                    it != samplemultiSet.end(); it++) 
    {
        cout << *it << " ";
    }
  
    // erases a range of elements, 
    // here all the elements
    samplemultiSet.erase(samplemultiSet.begin(), 
                              samplemultiSet.end());
  
    cout << "\nMultiSet size: " << samplemultiSet.size();
  
    return 0;
}
输出:
10 10 15 15 20 20 25 
MultiSet size: 0

程序2

// C++ program to illustrate the
// unordered_multiset::erase() function
  
#include 
#include 
  
using namespace std;
  
int main()
{
    unordered_multiset samplemultiSet;
  
    // Inserting elements
    samplemultiSet.insert(10);
    samplemultiSet.insert(5);
    samplemultiSet.insert(15);
    samplemultiSet.insert(20);
    samplemultiSet.insert(25);
    samplemultiSet.insert(10);
    samplemultiSet.insert(15);
    samplemultiSet.insert(20);
  
    // Erases all elements of value 10
    samplemultiSet.erase(10);
  
    // Displaying the set after removal
    for (auto it = samplemultiSet.begin(); 
                it != samplemultiSet.end(); it++) 
    {
        cout << *it << " ";
    }
  
    return 0;
}
输出:
5 15 15 20 20 25
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”