关注小韩 轻松编程 一起由浅入深
解析都在代码注释里 废话不多说 上菜!!!
#include<iostream>
#include<set>
using namespace std;
/*
1. set简介:所有元素都会在插入时自动排序 底层结构是二叉树
2. set和multiset区别:
set不允许容器中有重复元素
multiset允许容器中有重复的元素
3. 构造:
set<T> 默认构造
set<T> s2(s1); 拷贝构造
4. 重载了等号运算符 可直接等号赋值 s2=s1;
5. 插入数据只有insert方式 (因为是树结构) 没有push
6.set的大小和交换:
size() //返回容器中元素的个数
empty() //判断容器是否为空
s1.swap(s2) //交换两个容器的值
7. set插入和删除
insert(elem) //容器中插入元素
clear() //清除所有元素
erase(pos) //删除pos迭代器所指的元素。返回下一个元素的迭代器
erase(beg,end) //删除区间内的所有元素 返回一个元素的位置
erase(elem) //删除容器中值elem的元素
*/
void printset(set<int> s)
{
for (set<int>::iterator it = s.begin(); it != s.end(); it++)
cout << *it << " ";
cout << endl;
}
void test()
{
set<int> st;
st.insert(50);
st.insert(30);
st.insert(20);
st.insert(10);
st.insert(40);
printset(st); //打印输出容器内的值
//删除首元素
st.erase(st.begin()); // 参数是迭代器
printset(st); //删除的是;排好序的首元素10
//删除重载版本
st.erase(30);
printset(st); //删除30
//清空
st.erase(st.begin(), st.end());
printset(st);
st.clear();
}
int main()
{
test();
return 0;
}
码字不易 有帮助记得点赞
有疑问欢迎评论区留言!!