当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ unordered_multiset erase()用法及代码示例


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

用法

  1. unordered_multiset_name.erase(iterator position)
  2. unordered_multiset_name.erase(iterator start, iterator end)
  3. unordered_multiset_name.erase(key_value)

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


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

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

以下示例程序旨在说明unordered_multiset::erase()函数:
程序1

// C++ program to illustrate the 
// unordered_multiset::erase() function 
  
#include <iostream> 
#include <unordered_set> 
  
using namespace std; 
  
int main() 
{ 
    unordered_multiset<int> 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 <iostream> 
#include <unordered_set> 
  
using namespace std; 
  
int main() 
{ 
    unordered_multiset<int> 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


相关用法


注:本文由纯净天空筛选整理自tufan_gupta2000大神的英文原创作品 unordered_multiset erase() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。