set的erase()函数

1.删除单个元素

#include<iostream>
#include<set>
using namespace std;
int main()
{
	set<int>st;
	for(int i=1;i<=3;i++)
		st.insert(i);
	st.erase(st.find(2));//删除元素2
	//此处直接st.erase(2)也可以
	for(set<int>::iterator it=st.begin();it!=st.end();it++)
		cout<<*it<<" "<<endl;
	return 0; 
}

输出结果

1 3

2.删除一个区间内的所有元素

st.erase(frist,last)即删除[frist,last)内的元素,时间复杂度为O(last-frist)

#include<iostream>
#include<set>
using namespace std;
int main()
{
	set<int>st;
	set<int>::iterator it;
	for(int i=1;i<=3;i++)
		st.insert(i);
	st.erase(st.find(2),st.end());//删除元素2至set末尾之间的元素 
	for(it=st.begin();it!=st.end();it++)
		cout<<*it<<endl;
	return 0; 
}

输出结果

1
发布了94 篇原创文章 · 获赞 193 · 访问量 5592

猜你喜欢

转载自blog.csdn.net/weixin_45884316/article/details/104147269