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);//返回个数

所以自己看吧

————————————————————————————完结撒花———————————————————————————————————————

posted @ 2020-09-19 13:57  谪沈  阅读(97)  评论(0)    收藏  举报