unordered_multiset :: erase()函数是C++ STL中的内置函数,用于删除单个元素或具有确定值的所有元素,或从start(包括)到end(不包括)的一系列元素)。这通过删除元素的数量减少了容器的大小。
语法:
- 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
#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等的更多准备工作,请参阅“完整面试准备课程” 。