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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。