unordered_set::erase()函数是C++ STL中的内置函数,用于删除从开始(包括)到结束(不包括)的一系列元素中的单个元素。这通过删除的元素数量减少了容器的大小。
注意: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 <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> 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 <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<string> 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++ map erase()用法及代码示例
- C++ unordered_multiset erase()用法及代码示例
- C++ list 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()用法及代码示例
注:本文由纯净天空筛选整理自barykrg大神的英文原创作品 unordered_set erase() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。