set

 1.insert()    插入元素

 2.erase()      删除

 3.size()     元素数量

 4.max_size()  最大元素数量

 5.upper_bound() 大于某数的第一个元素

 6.lower_bound() 大于等于某数的第一个元素

 7.begin()        返回set第一个元素的迭代器

 8.end()      返回一个指向当前set末尾元素的下一位置的迭代器.

 9.clear()          删除set容器中的所有的元素

 10.empty()    判断set容器是否为空

 11.rbegin()     返回的值和end()相同

 12.rend()     返回的值和begin()相同

 

 

 

 1 //set
 2 /*
 3 1.set元素都是排好序的
 4 2.set内没有重复的元素 
 5 */ 
 6 #include<iostream>
 7 #include<cstdio>
 8 #include<set>
 9 using namespace std;
10 set<int> s;//set内可以定义多种类型 
11 
12 void print(){
13    for(set<int>::iterator it = s.begin(); it != s.end();it++)
14       cout<<*it<<' ';
15    cout<<endl;    
16 }
17 
18 int main(){
19 
20 
21 ////insert插入元素
22 int n = 10;
23 for(int i=0;i<=n;i++)s.insert(i);
24 print();//结果是“0 1 2 3 4 5 6 7 8 9 10  ”
25 //倒输
26 for(int i=n;i>=0;i--) s.insert(i);
27 print();//结果仍然是“0 1 2 3 4 5 6 7 8 9 10”(有顺序,互异性)
28 
29 
30 ////erase删除元素
31 for(int i=3;i<=5;i++) s.erase(i);
32 print();//"0 1 2 6 7 8 9 10"√:推荐使用 
33 //或者
34 s.erase(s.find(7),s.find(9));//删除[7,9)左闭右开 
35 print();// “0 1 2 6 9 10”
36 
37 
38 //// size求元素数量
39 cout<<"元素数量:"<<s.size()<<endl;//" 6 "
40 
41 
42 ////max_set返回可能包含的最大个数 
43 cout<<"容器包含元素的最大个数:"<<s.max_size()<<endl;
44 
45 
46 ////upper_bound第一个大于
47 ////lower_buond第一个大于等于
48 cout<<">6 : "<<*s.upper_bound(6)<<endl;//" 9 "
49 cout<<">=6 : "<<*s.lower_bound(6)<<endl; //" 6 "
50 
51 
52 ////begin
53 cout<<"第一个数:"<<*s.begin()<<endl ;
54  
55  
56 ////end
57 
58 cout<<"最后一个元素:"<<*s.end()<<endl;
59 //这里需要注意,返回的是最后一个元素下一个位置
60 //找倒数第二个元素需要减两次    
61 //栗子
62 set<int> :: iterator it=s.end(); 
63 cout<<"还是最后一个元素:"<<*(--it)<<endl; 
64 
65 
66 
67 return 0;
68 }

 

posted @ 2019-05-24 20:03  MENG_GE  阅读(112)  评论(0编辑  收藏  举报