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 ;
}

输出结果:

C++标准模板库(STL)介绍:set的基本用法的更多相关文章

  1. STL学习系列之一——标准模板库STL介绍

    库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...

  2. 【c++】标准模板库STL入门简介与常见用法

    一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...

  3. C++ 标准模板库STL 队列 queue 使用方法与应用介绍

    C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数, ...

  4. 标准模板库(STL)学习探究之stack

    标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string

  5. 标准模板库(STL)学习探究之vector容器

    标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...

  6. C++ 标准模板库(STL)

    C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...

  7. 标准模板库--STL

    标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...

  8. C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

    摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...

  9. 实验8 标准模板库STL

    一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...

  10. C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用

    摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第二篇.主要针对线性表中的链表 ST ...

随机推荐

  1. HDU5950 Recursive sequence (矩阵快速幂加速递推) (2016ACM/ICPC亚洲赛区沈阳站 Problem C)

    题目链接:传送门 题目: Recursive sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total ...

  2. java-为什么非静态内部类中不能有static修饰的属性,但却可以有final常量?

    - 例: public class Demo{ int x; class A{ static int a = 0; //这样写是不合法的. static final int b=0; //这样写是合法 ...

  3. D. The Fair Nut and the Best Path 树形dp (终于会了)

    #include<bits/stdc++.h> #define int long long using namespace std; ; int a[maxn]; int dp[maxn] ...

  4. 安装部署redis3.2 phpRedisAdmin 攻略

    1.下载redis3.2稳定版本: 下载地址:  https://redis.io/download 2.安装: 解压文件后,进行文件夹: 执行以下命令: make cd src make insta ...

  5. XML之命名空间的作用(xmlns)

    http://www.w3school.com.cn/xml/xml_namespaces.asp http://blog.csdn.net/zhch152/article/details/81913 ...

  6. [原] Android上使用native IO

    首先, 官方google play对APK大小有限制: 50M.( https://support.google.com/googleplay/android-developer/answer/113 ...

  7. day 4 Socket 和 NIO Netty

    Scoket通信--------这是一个例子,可以在这个例子的基础上进行相应的拓展,核心也是在多线程任务上进行修改 package cn.itcast.bigdata.socket; import j ...

  8. flex布局居中无效果注意是否设置了宽度

    <View style={{display:),backgroundColor:),alignItems:'center'}}> <JDTouchable style={styles ...

  9. golang . xml output with cdata

    out put with cdata package main //warning: go version must >=1.6 import ( "encoding/xml" ...

  10. 让使用SQLite的.NET应用自适应32位/64位系统

    如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不同了. SQLite的.NET开发包来自是System.D ...