std::unordered_set如何删除元素
时间: 2024-05-04 08:14:04 浏览: 270
删除顺序表中的元素
3星 · 编辑精心推荐
std::unordered_set是C++标准库中的一个容器,它是一个无序的集合,其中的元素是唯一的。要删除std::unordered_set中的元素,可以使用成员函数erase()。
erase()函数有多种用法,可以根据需要选择适合的方式来删除元素。以下是几种常见的用法:
1. 删除指定元素:
可以使用erase()函数来删除指定的元素。需要传入要删除的元素作为参数。如果元素存在于集合中,则会被删除;如果不存在,则不会有任何影响。
示例代码:
```
std::unordered_set<int> mySet = {1, 2, 3, 4, 5};
mySet.erase(3); // 删除元素3
```
2. 删除满足条件的元素:
可以使用erase()函数结合lambda表达式来删除满足特定条件的元素。lambda表达式可以用于指定删除条件。
示例代码:
```
std::unordered_set<int> mySet = {1, 2, 3, 4, 5};
mySet.erase(std::remove_if(mySet.begin(), mySet.end(), [](int num) { return num % 2 == 0; }), mySet.end()); // 删除所有偶数
```
3. 删除一定范围内的元素:
可以使用erase()函数结合迭代器来删除指定范围内的元素。需要传入要删除的起始迭代器和终止迭代器作为参数。
示例代码:
```
std::unordered_set<int> mySet = {1, 2, 3, 4, 5};
auto it = mySet.find(2); // 找到元素2的迭代器
mySet.erase(it, mySet.end()); // 删除元素2及其后面的所有元素
```
阅读全文