• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++标准模板库(STL)介绍:set的基本用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、元素的方向遍历

使用反向迭代器reverse_iterator可以反向遍历集合,输出集合元素的反向排序结果。它需要用到rbegin()和rend()两个方法,它们分别给出了反向遍历的开始位置和结束位置。

 1 #include<iostream>
 2 #include<set>
 3 using namespace std;
 4 
 5 int main(){
 6     set<int> st;
 7     st.insert(5); 
 8     st.insert(1);
 9     st.insert(6);
10     st.insert(3);
11     set<int>::reverse_iterator rit; //定义反向迭代器
12     //反向遍历st中的所有元素
13     for (rit = st.rbegin(); rit != st.rend(); rit++)
14         cout << *rit << " ";
15     cout << endl;
16     return 0;
17 }
18 //运行结果:6 5 3 1
View Code

 2、求解set的交、并、差、对称差的函数

#include <algorithm>
set_intersection(取集合交集)
set_union(取集合并集)
set_difference(取集合差集)
set_symmetric_difference(取集合对称差集)

这几个函数的前四个参数一样,只有第五个参数有多重版本。

EX1:

set_union(A.begin(),A.end(),B.begin(),B.end(),inserter( C1 , C1.begin() ) );

前四个参数依次是第一的集合的头尾,第二个集合的头尾。第五个参数的意思是将集合A、B取合集后的结果存入集合C中。

EX2:

set_union(A.begin(),A.end(),B.begin(),B.end(),ostream_iterator<int>(cout," “));

 

第五个参数的意思是将A、B取合集后的结果直接输出,(cout," ")双引号里面是输出你想用来间隔集合元素的符号或是空格。

 

 1 #include <iostream>     
 2 #include <algorithm>    
 3 #include <iterator>
 4 #include <vector>       
 5 #include <set>
 6 using namespace std;
 7 
 8 void print(set<int>& st) {
 9     set<int>::iterator it;
10     for (it = st.begin(); it != st.end(); it++)
11         cout << *it << " ";
12     cout << endl;
13 }
14 int main() {
15     set<int> st1, st2, st3;
16     for (int i = 0; i < 6; i++) {
17         st1.insert(i);
18         st2.insert(i + 6);
19     }
20     st1.insert(6);
21     cout << "st1:";
22     print(st1);
23     cout << "st2:";
24     print(st2);
25     set_union(st1.begin(), st1.end(), st2.begin(), st2.end(), inserter(st3, st3.begin()));
26     cout << "st3:";
27     print(st3);
28     set_union(st1.begin(), st1.end(), st2.begin(), st2.end(), ostream_iterator<int>(cout, "*"));
29     
30     return 0;
31 }
View Code

 

输出结果:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
《算法与数据结构---C语言描述》优先队列发布时间:2022-07-13
下一篇:
Effective C++ 38-42发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap