C++标准模板库(STL)之Set
1、Set的用法
Set:集合,一个内部自动有序而且不重复元素的容器。使用set,要加头文件#include<set>和using namespace std;
1.1、Set的定义
set<typename> name;
set<int> name;
set<double> name;
set<char> name;
set<Node> name;//Node是结构体类型
set<typename> Arrayname[arraySize];//set<int> a[100];a[0]~a[99]的每一个都是一个set容器。
/*
定义和写法和vector基本一样,同样typename可以是任何基本类型,结构体,STL容器类型。
同样,typename是容器的时候,>>后要加空格,避免编译器当成位运算出错。
*/
1.2、set容器内元素的访问
set只能通过迭代器iterator访问
set<typename>::iterator it;//typename对应定义set时的类型。
set<int>::iterator it;
因为除了vector和string之外的STL的容器都不支持以下标的方式访问。
#include<stdio.h>
#include<set>
using namespace std;
int main()
{
set<int> st;
for(int i=;i<;i++)
{
st.insert(i);
}
for(set<int>::iterator it=st.begin();it!=st.end();it++)
{
printf("%d ",*it);
}
return ;
}
set内的元素,自动递增排序,并且去重。
1.2、set常用函数
1.2.1、insert()函数
insert(x):将x插入set容器中,并且自动递增排序和去重。时间复杂度为O(logN),N为元素个数
1.2.2、find()函数
find(value):查找值为value的元素,返回它的迭代器。时间复杂度为O(logN),N为元素个数
1.2.3、erase()函数
erase(x):删除单个元素,时间复杂度为O(logN)
erase(a,b);删除左闭右开区间内[a,b)的元素,时间复杂度为O(b-a)
1.2.4、size()函数
size():用来获得set内元素的个数,时间复杂度为O(1)
1.2.5、clear()函数
clear():用来清空set所有元素,时间复杂度为O(N)
#include<stdio.h>
#include<set>
using namespace std;
int main()
{
set<int> st;
st.insert();
st.insert();
st.insert();
st.insert();
st.inert();
st.insert();
int len=st.size();// for(set<int>::iterator it=st.begin();it!=st.end();it++)
{
printf("%d ",*it);//1,2,3,4,5
}
st.erase(st.find());//利用find()函数先找到2,然后erase删除它
st.erase();//删除set中值为3的元素,时间复杂度为O(logN)
set<int>::iterator it=st.find();
st.erase(it,st.end());//删除元素2到set末尾之间的数,也就是4,5
st.clear();
int len_clear=st.size();//
return ;
}
1.3、set的用途
set重要的作用:自动去重,升序排序。
2018-09-25 15:36:20
@author:Foreordination
C++标准模板库(STL)之Set的更多相关文章
- 标准模板库(STL)学习探究之stack
标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...
- STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...
- 标准模板库--STL
标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
- 实验8 标准模板库STL
一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...
- C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第二篇.主要针对线性表中的链表 ST ...
- C++ 标准模板库STL 队列 queue 使用方法与应用介绍
C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数, ...
- 【c++】标准模板库STL入门简介与常见用法
一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...
随机推荐
- arcgis for js 之 获取两点之间的距离
换了新公司,接触新行业,半路出家,看着别人的代码,看着api慢慢理解. 需求如下:已知两点坐标求距离. 思路,没有,站在同事的肩膀上踩路子,给的这个链接 https://developers.arcg ...
- Apache Kylin学习资料
官方文档: http://kylin.apache.org/cn/docs/tutorial/web.html kylin对接hive实现实时查询:https://www.cnblogs.com/65 ...
- 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 <网络对抗技术>Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0. ...
- inodes 相关信息查看
查看inode数量 df -ih 查看磁盘信息 tune2fs -l /dev/sdc1 查看相关目录信息 /data/osd.3/bean_test/7/8/9# debugfs /dev/sdc2 ...
- SlidingMenu第三篇 --- SlidingMenu使用介绍
在Activity中通过SlidingMenu的构造方法,直接设置侧滑菜单 public class Main2Activity extends Activity { @Override protec ...
- window.location.search 在url中有?name=value时仍为‘’的情况
1,当页面有hash#值 而?name=value在hash #的串后面将会有这种结果 2,为什么 window.location.search 为空? 答:注意上面的search和hash的区别,如 ...
- 2017-12-26--mysql(5.6.15),linux下安装使用
本文档的目的是,指导使用者安装.配置.还原所需要用到的mysql数据库.仅提供linux版本服务器的安装说明,且linux版本为64位的Centos6.4.同时,会提供的mysql安装包(MySQL- ...
- springboot+thymeleaf+pageHelper带条件分页查询
html层 <div> <a class="num"><b th:text="'共 '+ ${result.resultMap['pages ...
- Java 键盘输入数字(空格隔开) 将数字存入数组
Scanner sc = new Scanner(System.in); String inputString = sc.nextLine(); String stringArray[] = inpu ...
- 【Django模板006】
在前面的几节中我们都是用简单的django.HttpResponse来把内容显示到网页上,本节将讲解如何使用渲染模板的方法来显示内容. 1.创建一个zqxt_tmpl项目,和一个名称为learn的应用 ...