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. 印度下架54款中国APP,中东政策逐年收紧,伊拉克成蓝海市场

    2月14日,印度电子和信息技术部以"安全威胁"为由对有中国基因的54款App下达禁令,15日,印度税务部门对某些在印中资企业多个场所进行搜查. 本批下架的App中主要以应用类App ...

  2. error: failed to push some refs to 'git@gitee.com:xxxx'

    出现错误的主要原因是向上仓库的一些文件(README.md,LICENSE等文件)不在本地代码目录中 git pull --rebase origin master 通过这行命令, 可以解决 注释福利 ...

  3. 浅谈ES6中的Class

    转载地址:https://www.cnblogs.com/sghy/p/8005857.html 一.定义类(ES6的类,完全可以看做是构造函数的另一种写法) class Greet { constr ...

  4. setTimeout中第一个参数

    永远不要传递字符串作为setTimeout的第一个参数!!!记住第一个参数只允许函数,或者匿名函数!因为传递字符串有陷阱啊!!它就是披着羊皮的eval啊!!而且上下文会变成全局啊!! 第一个参数为可执 ...

  5. MAUI VS Preview 2.1 win 下无法调试ios, 目前无解

    Microsoft Visual Studio Community 2022 (64 位) - Preview 版本 17.2.0 Preview 2.1 报错 严重性 代码 说明 项目 文件 行 禁 ...

  6. JAVASE for 笔记

    //0到100中奇数偶数的和package com.huang.boke.flowPath;public class Fordeme { public static void main(String[ ...

  7. Intellij IDEA中查看字节码

    首先安装插件,这俩都勾上 Intellij IDEA 直接集成了一个工具菜单,可以直接查看字节码,打开 ByteCode 插件窗口方法如下:

  8. springboot中bean的重定义

    需求描述: 项目中应用其他项目的jar包,然后有些controller中的方法有缺陷需要修改. 1.配置添加 spring.main.allow-bean-definition-overriding= ...

  9. TCP/IP 协议标准简单描述

    TCP/IP 协议标准简单描述 说明 分为三部分:中文名称.缩写.说明. 应用层 DNS 域名服务 (DNS) 功能: 将域名转化为IP地址 BOOTP 引导程序协议 (BOOTP) 功能: 允许无盘 ...

  10. .NET Core(.NET6)中gRPC注册到Consul

    一.简介 上一篇文章介绍了.NET Core 中使用gRPC,在微服务中,我们通常要把服务做成服务注册,服务发现的方式,那么这里来说一下gRPC是如何注册到Consul中的. Consul的安装这里就 ...