在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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 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 }
输出结果:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论