set 容器的入门

  • unordered_set:另外头文件,乱序排放,使用哈希表(便于查找)

  • multiset:可以重复存在的集合。用count()读取个数

创建set的几种方式

  1. 常规

set<数据类型>s;
  1. 声明并初始化

set<数据类型>s{value1,value2}; 

set的特性

  1. set 容器内没有重复元素
  2. 每次insert的时候,都会自动排好序。(默认升序)
  3. 键值对, key 和值 value 相同。
  4. 修改值出现的问题( 删除 再 输入 )

常用函数

函数 说明
insert() 向 set 容器中插入元素。
erase() 删除 set 容器中存储的元素。
empty() 若容器为空,则返回 true;否则 false。
begin() 返回指向容器中第一个(排好序的第一个)元素的迭代器
end() 返回指向容器最后一个元素(已排好序的最后一个)所在位置后一个位置的双向迭代器
rbegin() 返回一个逆向迭代器,指向逆向迭代的第一个元素
rend() 返回一个逆向迭代器,指向逆向迭代的最后一个元素的下一个位置
find(val) 查找值为 val 的元素的,如果找到返回该元素的迭代器,如果没找到返回end()
count(val) 查找值为 val 的元素的个数,该函数的返回值最大为 1。
lower_bound(val) 返回元素值为val 的第一个可安插位置,也就是元素值 >= val 的第一个元素位置
upper_bound(val) 返回元素值为val 的最后一个可安插位置,也就是元素值 > val 的第一个元素位置
clear() 移除所有元素,将容器清空

erase 的相关使用

种类名称 作用(set,map一样)
erase(val) 删除与val 相等的所有元素,返回被移除的元素个数。
erase(pos) 移除迭代器pos 所指位置元素,无返回值。
erase(beg,end) 移除区间 [beg,end) 所有元素,无返回值。

自定义set排序规则

struct intComp {
bool operator() (const int& lhs, const int& rhs) const {
return lhs > rhs;
}
};
 

制作:BDT20040

[C++STL] set 容器的入门的更多相关文章

  1. [C++STL] vector 容器的入门

    vector容器的入门 #include<vector> 创建vector容器的几种方式 数据类型可以是结构体,也能是另外一个容器 vector 的初始化: (1) 创建并声明大小 vec ...

  2. C++ STL vector容器学习

    STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector, ...

  3. 【云计算】Dockerfile、镜像、容器快速入门

    Dockerfile.镜像.容器快速入门 1.1.Dockerfile书写示例 Dockerfile可以用来生成Docker镜像,它明确的定义了Image的生成过程.虽然直接修改容器也可以提交生成镜像 ...

  4. Castle IOC容器快速入门

    主要内容 1.为什么要IOC 2.什么是Castle IOC容器 3.快速入门示例 4.几个重要的概念 一,为什么要IOC IOC(控制反转或者叫依赖注入)Martin Fowler大师在他的文章中已 ...

  5. STL List容器

    转载http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html 各个容器有很多的相似性.先学好一个,其它的就好办了.先从基础开始 ...

  6. STL之容器适配器queue的实现框架

    说明:本文仅供学习交流,转载请标明出处,欢迎转载! 上篇文章STL之容器适配器stack的实现框架已经介绍了STL是怎样借助基础容器实现一种经常使用的数据结构stack (栈),本文介绍下第二种STL ...

  7. STL的容器算法迭代器的设计理念

    1) STL的容器通过类模板技术,实现数据类型和容器模型的分离. 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了统一性. 3) STL的函数对象实现了自定义数据类型的算法运算 ...

  8. c++复习:STL之容器

    1 STL的string 1 String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字 ...

  9. stl之容器、迭代器、算法几者之间的关系

    转自:https://blog.csdn.net/bobodem/article/details/49386131 stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优 ...

随机推荐

  1. 微信小程序登录鉴权流程图

  2. java中当static块和构造函数同时出现,顺序是?

    静态块先于构造函数执行 class Student {    int age;    String name;    static int count;    public Student() {   ...

  3. 自己对kmp算法的理解,借由 28. 实现 strStr() 为例

    做题思路 or 感想 : 就借由这道题来理解一下kmp算法吧 kmp算法的操作过程我觉得有句话很合适 :KMP 算法永不回退 目标字符串 的指针 i,不走回头路(不会重复扫描 目标字符串),而是借助 ...

  4. centos7 装机后的基本配置

    安装完centos7.3后,做一些基本的操作 下面是我的环境的配置,你们可以根据自己的环境搭配相应的配置.修改下就可以了.基本操作一:主机名 centos7有一个新的修改主机名的命令hostnatct ...

  5. Linux小工具的应用,grep,sort,wc,cut

    小工具的使用: 1.管道(|):连接多个命令的工具,进程之间通讯的一种方式 用法:命令1 | 命令2 | 命令3....2.grep工具:行过滤,打印出的结果一行一行的 用法:grep options ...

  6. Kubernetes探针原理详解

    前言: 分布式系统和微服务体系结构的挑战之一是自动检测不正常的应用程序,并将请求(request)重新路由到其他可用系统,恢复损坏的组件.健康检查是应对该挑战的一种可靠方法.使用 Kubernetes ...

  7. 序列化器中钩子函数源码分析、many关键字源码分析

    局部钩子和全局钩子源码分析(2星) # 入口是 ser.is_valid(),是BaseSerializer的方法 # 最核心的代码 self._validated_data = self.run_v ...

  8. MassTransit 入门(一)

    本文地址源码 MassTransit是一个面向.net的免费开源分布式应用程序框架. MassTransit使得创建应用程序和服务变得很容易,这些应用程序和服务利用基于消息的.松散耦合的异步通信来获得 ...

  9. CesiumJS 2022^ 原理[2] 渲染架构之三维物体 - 创建并执行指令

    目录 回顾 预备知识:指令 预备知识:通道 1. 生成并执行指令 1.1. Primitive 生成指令 1.2. Context 对象负责执行 WebGL 底层代码 2. 多段视锥体技术 3. 指令 ...

  10. windows10家庭版启用组策略gpedit.msc

    启用组策略gpedit.msc 家庭版很多功能不能使用,凑巧用的就是家庭版. 还想使用gpedit.msc来关闭windows10的更新. 找到一个可行的方法. 需要创建一个脚本. 如果你没有编辑器, ...