[C++STL] set 容器的入门
set 容器的入门
unordered_set:另外头文件,乱序排放,使用哈希表(便于查找)
multiset:可以重复存在的集合。用count()读取个数
创建set的几种方式
常规
set<数据类型>s;
声明并初始化
set<数据类型>s{value1,value2};
set的特性
- set 容器内没有重复元素
- 每次insert的时候,都会自动排好序。(默认升序)
- 键值对, key 和值 value 相同。
- 修改值出现的问题( 删除 再 输入 )
常用函数
| 函数 | 说明 |
|---|---|
| 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 容器的入门的更多相关文章
- [C++STL] vector 容器的入门
vector容器的入门 #include<vector> 创建vector容器的几种方式 数据类型可以是结构体,也能是另外一个容器 vector 的初始化: (1) 创建并声明大小 vec ...
- C++ STL vector容器学习
STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector, ...
- 【云计算】Dockerfile、镜像、容器快速入门
Dockerfile.镜像.容器快速入门 1.1.Dockerfile书写示例 Dockerfile可以用来生成Docker镜像,它明确的定义了Image的生成过程.虽然直接修改容器也可以提交生成镜像 ...
- Castle IOC容器快速入门
主要内容 1.为什么要IOC 2.什么是Castle IOC容器 3.快速入门示例 4.几个重要的概念 一,为什么要IOC IOC(控制反转或者叫依赖注入)Martin Fowler大师在他的文章中已 ...
- STL List容器
转载http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html 各个容器有很多的相似性.先学好一个,其它的就好办了.先从基础开始 ...
- STL之容器适配器queue的实现框架
说明:本文仅供学习交流,转载请标明出处,欢迎转载! 上篇文章STL之容器适配器stack的实现框架已经介绍了STL是怎样借助基础容器实现一种经常使用的数据结构stack (栈),本文介绍下第二种STL ...
- STL的容器算法迭代器的设计理念
1) STL的容器通过类模板技术,实现数据类型和容器模型的分离. 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了统一性. 3) STL的函数对象实现了自定义数据类型的算法运算 ...
- c++复习:STL之容器
1 STL的string 1 String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字 ...
- stl之容器、迭代器、算法几者之间的关系
转自:https://blog.csdn.net/bobodem/article/details/49386131 stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优 ...
随机推荐
- Blog Ideas
Blog Ideas How-to Post Case Studies Product + Service Updates Product Reviews Content Survey Current ...
- android SQLite数据库(转)
Android数据库 之 SQLite数据库 Android数据库 一.关系型数据库SQLIte 每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的.与操作系统无 ...
- web页面性能优化之接口前置
上个Q做了一波web性能优化,积累了一点点经验 记录分享一下. 先分享一个比较常用的接口前置 的优化方案吧 优化前首屏秒开大约在40%左右 首屏秒开大约提高了25% 先发一张优化成果图 前置原因 对于 ...
- ecahrts实现动态刷新(隔几秒重新显示)
代码: <script> var chartDom = document.getElementById('main3'); var myChart = echarts.init(chart ...
- nodejs创建服务器
'use strict'; //加载http模块: const http = require('http'); //创建一个http服务: const server = http.createSe ...
- 不用关闭重启cad及不用更改快捷方式或者版本号c#调试cad插件
c#开发的cad插件需要重启cad才能进行调试,然而高版本的cad启动比较慢特别是一些古董电脑,而且cad有重启次数限制.针对不用重启cad调试已经有成熟的方案了,但是需要调试一次修改一次快捷方式或者 ...
- 性能优化之html、css、js三者的加载顺序
前言 我们知道一个页面通常由,html,css,js三部分组成,一般我们会把css文件放在head头部加载,而js文件则放在页面的最底部加载,想要知道为什么大家都会不约而同的按照这个标准进行构建页面, ...
- go sync.map源码解析
go中的map是并发不安全的,同时多个协程读取不会出现问题,但是多个协程 同时读写就会出现 fatal error:concurrent map read and map write的错误.通用的解决 ...
- Jx.Cms开发笔记(一)-Jx.Cms介绍
开始 从今天开始,我们将开启Jx.Cms系列开发教程. 我们将会使用Jx.Cms来介绍Blazor的开发.MVC的开发,热插拔插件的开发等等一系列开发教程. 介绍 Jx.Cms是一个使用最新版.NET ...
- 比较爽的导航查询 功能 - SqlSugar ORM
1.导航查询特点 作用:主要处理主对象里面有子对象这种层级关系查询 1.1 无外键开箱就用 其它ORM导航查询 需要 各种配置或者外键,而SqlSugar则开箱就用,无外键,只需配置特性和主键就能使用 ...