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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。