unordered_multiset::erase()函數是C++ STL中的內置函數,該函數用於刪除單個元素或具有確定值的所有元素,或者從開始(包括)到結束(不包括)的一係列元素。這通過刪除元素的數量減少了容器的大小。
用法:
- unordered_multiset_name.erase(iterator position)
- unordered_multiset_name.erase(iterator start, iterator end)
- unordered_multiset_name.erase(key_value)
參數:此函數有三個版本。
- 第一個將迭代器作為參數,刪除該位置上存在的元素。
- 第二個版本使用兩個迭代器(例如start和end),並使用2個迭代器作為參數,並擦除[start,end)範圍內的所有元素。
- 第三個版本將鍵值作為參數,並刪除多重集中該值的所有元素。
返回值:如上述語法所示,函數的第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
相關用法
- C++ map erase()用法及代碼示例
- C++ list erase()用法及代碼示例
- C++ unordered_set erase()用法及代碼示例
- C++ set::erase用法及代碼示例
- C++ unordered_multimap erase用法及代碼示例
- C++ unordered_map erase用法及代碼示例
- C++ multimap::erase()用法及代碼示例
- C++ multiset erase()用法及代碼示例
- C++ std::string::erase用法及代碼示例
- C++ vector erase()、clear()用法及代碼示例
- C++ deque::clear()、deque::erase()用法及代碼示例
注:本文由純淨天空篩選整理自tufan_gupta2000大神的英文原創作品 unordered_multiset erase() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。