STL——set
今天抱着试一试的态度,写一篇帮助自己理解set的文章
——————————————————————————————————————
set是c++中的STL非常的好用,定义也非常方便
set<int> s; set<int>::iterator iter;
重要的是它的用法:
1、插入元素 insert.s();
set最好用的就是他插入后,**可以自己去重,并且排序**
#### 例如:
#### 输入:1 4 4 5 2 2 6 8 7 7
#### 输出:1 2 4 5 6 7 8
2、遍历
这个时候就要用到定义时的一行代码
set<int>::iterator iter;
可以理解为一个迭代器,或是指针
for(iter=s.begin();iter!=s.end();iter++) cout<<*iter<<" ";
它与数组不同的是,他需要iter帮助他输出,而不是s[i]
iter从begin开始,到end结束,输出用地址符
#### 例如:
#### 输入:1 4 4 5 2 2 6 8 7 7
#### 输出:1 2 4 5 6 7 8
3、查询
查询是STL里面最关键的操作
iter=s.find(1); if (iter!=s.end()) cout<<*iter<<endl; else cout<<-1<<endl;
查找操作见上,使用find函数,如果找到了,那么iter就是查找这个数的位置,否则iter的值就是s的end结尾了。
4、删除和空
两个非常简单的操作,知道STL那就肯定知道的操作
删除 :
iter=s.find(1); s.erase(iter);
判断为空:
if(!s.empty()==1) s.clear();
5、其他操作
这个就不详细说明了,因为不想写了 ……
其实是因为本蒟蒻理解的不是很好,万一说错了
lower_bound(x);//返回set中大于等于x的最小迭代器 upper_bound(x);// 返回set中大于x的最小迭代器,如果找不到也会返回end()。 count(x);//返回个数
所以自己看吧
————————————————————————————完结撒花———————————————————————————————————————

浙公网安备 33010602011771号