前面一节我们学会了3种方法为set容器添加元素,分别是insert()、emplace()和emplace_hint()。如果我们需要删除set内元素,读者第一时间会想到什么?没错,erase()成员函数。set容器主要就是通过erase()删除元素的,clear()实现元素清空。下面我们就通过代码分别展示如何为set容器删除元素。

#include<iomanip>
#include <iostream>
#include <set>
#include <string>
using namespace std;
/*erase()删除set内元素*/ 
void test()
{
set<int> s({1,2,3,4,5,6,7,8,9,10}) ;
s.erase(7);//直接删
cout << "把7删了:" ;
for(auto it = s.begin();it!=s.end();++it) cout << *it << " ";
cout << '\n';
s.erase(s.begin()) ;//删除迭代器指向元素
cout << "把第一个元素1删了:" ;
for(auto it = s.begin();it!=s.end();++it) cout << *it << " ";
cout << '\n';
s.erase(++s.begin(),s.end()) ;//区间删除
cout << "除第一个元素以外的所有元素删了:" ;
for(auto it = s.begin();it!=s.end();++it) cout << *it << " ";
cout << '\n';
 
 
/*clear()*/
s.clear();
cout << "全部清除后有元素:【"  << s.size() << "】个\n";
}
int main() {
    test();
    return 0;
}

编译结果如下:

erase()

成功按指令删除元素!

总结:本节我们主要通过代码讲解了erase()删除set容器内元素的三种方法,其中删除单个元素需要指定元素或迭代器,删除区间元素需要指定两个迭代器;同时clear()能够实现清空所有元素。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)