[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包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优 ...
随机推荐
- CEPH-4:ceph RadowGW对象存储功能详解
ceph RadosGW对象存储使用详解 一个完整的ceph集群,可以提供块存储.文件系统和对象存储. 本节主要介绍对象存储RadosGw功能如何灵活的使用,集群背景: $ ceph -s clust ...
- Codepen 每日精选(2018-4-28)
按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以打开原始页面. 页面目录特效https://codepen.io/suez/pen/k... 选单交互效果https:// ...
- CSS样式写在JSP代码中的几种方法
1.行内样式. 可以直接把css代码写在现有的HTML标签元素的开始标签里面,并且css样式代码要写在style=" "双引号中才可以, 如: <p style=" ...
- js原生的Ajax
js原生的Ajax其实就是围绕浏览器内内置的Ajax引擎对象进行学习的,要使用js原 生的Ajax完成异步操作,有如下几个步骤: 1)创建Ajax引擎对象 2)为Ajax引擎对象绑定监听(监听服务器已 ...
- java——封装
java--封装 java--封装1 封装的理解和好处2 封装的事项实现步骤3 将构造器和setXx结合4 this和super区分 1 封装的理解和好处 隐藏实现细节:[方法(连接数据库)<- ...
- python---复杂度、斐波那切数列、汉诺塔
时间复杂度 用来估计算法运行时间的一个式子. 一般来说, 时间复杂度高的算法比复杂度低的算法慢. 常见的时间复杂度: O(1) < O(logn) < O(n) < O( ...
- cannot find module providing package github.com/× working directory is not part of a module
今天在搭建fabric的过程中遇到一个问题,记录一下 root@zitao /home/hong/Desktop/gowork/src/github.com/hyperledger/fabric re ...
- SpringMVC-注解@RequestParam
当请求的参数名称与Controller的业务方法不一致时,就需要通过@RequestParam注解进行显示的绑定 1.value:映射参数 @RequestMapping("/report1 ...
- linux ping的三个数字(56,84,64)
参考:ping 深入剖析:https://www.cnblogs.com/aozhejin/p/15917312.html windows默认是32字节,linux是56字节说的都是数据包大小注意:1 ...
- Cookie&&Session&&jsp入门
会话技术 会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Coo ...