當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。