提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
set,集合,是一个内部自动有序且不含重复元素的容器。
一、set的定义
set<类型名> 变量名;
set<int> name;
set<double> name;
set<char> name;
set<struct node> name;
set<set<int> > name;//注意:> >之间要加空格
set数组就是一个一维数组,如果定义成set数组的数组,那就是二维数组。
set<类型名> array[SIZE];
二、 set容器内元素的访问
set只能通过迭代器(iterator)访问:
set<int>::iterator it;
set<char>::iterator it;
三、set常用函数
insert()
st.insert('A');
类似push;
find()
find(value)返回的是set中value所对应的迭代器,也就是value的指针(地址)。
set<int>::iterator it = st.find(2); //在set中查找2,返回其迭代器
cout << *it << endl;
//cout << *(st.find(2)) << endl;
erase()
st.erase(it),其中it为所需要删除元素的迭代器。时间复杂度为O(1)。可以结合find()函数来使用。
st.erase(st.find(200));
st.erase(value),value为所需要删除元素的值。时间复杂度为O(logN),N为set内的元素个数。 `
st.erase(100);`
size()
szie()用来实时获得set内元素的个数,时间复杂度为O(1)。