1、元素的方向遍历

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

 #include<iostream>
#include<set>
using namespace std; int main(){
set<int> st;
st.insert();
st.insert();
st.insert();
st.insert();
set<int>::reverse_iterator rit; //定义反向迭代器
//反向遍历st中的所有元素
for (rit = st.rbegin(); rit != st.rend(); rit++)
cout << *rit << " ";
cout << endl;
return ;
}
//运行结果:6 5 3 1

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," ")双引号里面是输出你想用来间隔集合元素的符号或是空格。

 #include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <set>
using namespace std; void print(set<int>& st) {
set<int>::iterator it;
for (it = st.begin(); it != st.end(); it++)
cout << *it << " ";
cout << endl;
}
int main() {
set<int> st1, st2, st3;
for (int i = ; i < ; i++) {
st1.insert(i);
st2.insert(i + );
}
st1.insert();
cout << "st1:";
print(st1);
cout << "st2:";
print(st2);
set_union(st1.begin(), st1.end(), st2.begin(), st2.end(), inserter(st3, st3.begin()));
cout << "st3:";
print(st3);
set_union(st1.begin(), st1.end(), st2.begin(), st2.end(), ostream_iterator<int>(cout, "*")); return ;
}

输出结果:

最新文章

  1. 解决log4j:WARN No appenders could be found for logger
  2. Facade设计模式
  3. 浮动ip
  4. 增量式PID计算公式4个疑问与理解
  5. ios开发@selector的函数如何传参数/如何传递多个参数
  6. Android_SDK的常用命令
  7. 分享一个快速的Json(反)序列化开源项目 Jil
  8. 【python之旅】python的基础三
  9. C# 调用c++报错可能性分析
  10. 登录模块的进化史,带大家回顾java学习历程(二)
  11. Docker 创建ubuntu ,ssh,vnc 可连接
  12. babel-runtime和babel-polyfill两者区别优缺点
  13. 记录一次大量CLOSE_WAIT的情况
  14. 机器学习系列-tensorflow-01-急切执行API
  15. eclipse——JDK安装与环境变量配置步骤
  16. Java列表、数组、字符串
  17. daal utils printNumericTable
  18. HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList 底层实现
  19. 使用OpenCV通过摄像头捕获实时视频并探测人脸
  20. OLEDB操作Excel

热门文章

  1. PTA——模拟除法
  2. java-多态中成员访问特点-父类引用指向子类对象
  3. djjango cookie和session 的几种常用需求使用方法
  4. Elasticsearch基本用法(1)--原生操作
  5. JS 数组常用的方法
  6. 【shell编程】之基础知识-输入/输出和重定向
  7. (惊艳)hashmap的理解(映射)
  8. Spring事务管理机制的实现原理-动态代理
  9. bfprt
  10. C# string 转 bool