unordered_set :: erase()函数是C++ STL中的内置函数,用于删除从start(包括)到end(不包括)在内的一系列元素中的单个元素。这通过删除的元素数量减少了容器的大小。
注意:unordered_set中的存储桶编号从0到n-1,其中n是存储桶的总数。
语法:
unordered_set_name.erase(iterator start, iterator end)
or
unordered_set_name.erase(iterator position)
or
unordered_set_name.erase(element)
参数:该函数接受三种类型的参数。如果它接受单个元素,则它将找到该特定元素并将其删除。如果它接受迭代器,则它将擦除该位置上存在的元素。如果它接受两个迭代器start和end,它将删除[start,end]范围内的所有元素。
返回值:该函数返回一个迭代器,该迭代器指向最后一个元素之后的元素,如果使用前两种语法,则该元素将被删除。在第三种语法的情况下,如果元素存在于unordered_set中,则返回1;否则,在擦除该元素后返回0。
下面的程序说明了unordered_set :: erase()函数:
程序1 :
// CPP program to illustrate the
// unordered_set::erase() function
#include
#include
using namespace std;
int main()
{
unordered_set sampleSet;
// Inserting elements
sampleSet.insert(5);
sampleSet.insert(10);
sampleSet.insert(15);
sampleSet.insert(20);
sampleSet.insert(25);
// erases a particular element by its position
sampleSet.erase(sampleSet.find(10));
// displaying the set after removal
for (auto it = sampleSet.begin(); it != sampleSet.end(); it++) {
cout << *it << " ";
}
// erases a range of elements
sampleSet.erase(sampleSet.begin(), sampleSet.end());
cout << "\nSet size: " << sampleSet.size();
return 0;
}
输出:
25 5 15 20
Set size: 0
程序2 :
// CPP program to illustrate the
// unordered_set::erase() function
#include
#include
#include
using namespace std;
int main()
{
unordered_set sampleSet = { "geeks1", "for", "geeks2" };
// erases a particular element
sampleSet.erase("geeks1");
// displaying the set after removal
cout << "Elements: ";
for (auto it = sampleSet.begin(); it != sampleSet.end(); it++) {
cout << *it << " ";
}
sampleSet.insert("geeks1");
// erases from where for is
sampleSet.erase(sampleSet.find("for"), sampleSet.end());
// displaying the set after removal
cout << "\nAfter second removal set : ";
for (auto it = sampleSet.begin(); it != sampleSet.end(); it++) {
cout << *it << " ";
}
return 0;
}
输出:
Elements: geeks2 for
After second removal set : geeks1 geeks2
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。