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的更多相关文章

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

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

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

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

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

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

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

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

  5. 标准模板库--STL

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

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

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

  7. 实验8 标准模板库STL

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

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

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

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

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

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

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

随机推荐

  1. pandas nan值处理

    创建DataFrame样例数据 >>> import pandas as pd >>> import numpy as np >>> data = ...

  2. 使用google earth engine根据NDWI(归一化水指数)提取水体信息

    交流合作请联系: ab000c@163.com

  3. mui返回上个页面并刷新数据

    转 https://blog.csdn.net/mercedescc/article/details/82769264 今天写项目遇到个问题,就是B页面支付操作完成以后,点击返回按钮要到A页面,此时A ...

  4. 基于zigbee协议的空中下载技术(OTA)

    首先镜像服务器的解释: 镜像服务器(Mirror server)与主服务器的服务内容都是一样的,只是放在一个不同的地方,分担主机的负载. 简单来说就是和照镜子似的,能看,但不是原版的.在网上内容完全相 ...

  5. Vue入门:Vue项目创建及启动

    1. 创建Vue项目存放地址 用于存放Vue项目,找个自己处理方便的地方.本人地址:D:\Program Files\Workspace\Vue 2. 创建项目 进入cmd窗口 进入项目存放地址 执行 ...

  6. Thuwc 2019 & wc 2019 划水记

    (此处不应有目录,爆零的过程应该慢慢看) Thuwc 2019 拖着箱子去广二,然后发现可以搬出去住酒店.好,然后箱子白搬了.Joker似乎说住宿体验极差,广二宿舍和林荫宿舍质量不相上下,想想wc时要 ...

  7. 自动化运维 --- git

    一. git 概括 二.常用指令 git init 初始化 git status 查看git的状态 git add 将文件放到缓存区 git commit -m 将缓存区的内容提交到本地仓库 git ...

  8. 微信小程序框架集合

    UI组件 weui-wxss ★852 - 同微信原生视觉体验一致的基础样式库 Wa-UI ★122 - 针对微信小程序整合的一套UI库 wx-charts ★105 - 微信小程序图表工具 wema ...

  9. Request类源码分析

    通过APIView进入找到Request的源码 可以看见一堆属性和方法,其中request.data其实是一个方法,被包装成一个属性 继续看__getattr__和query_params方法: 代码 ...

  10. [IoC容器Unity]第一回:Unity预览

    1.引言 高内聚,低耦合成为一个OO架构设计的一个参考标准.高内聚是一个模块或者一个类中成员跟这个模块或者类的关系尽量高,低耦合是不同模块或者不同类之间关系尽量简单. 拿咱国家举例来说,假如你是中国人 ...