C++——set基本操作总结
set容器中只能存储键,是单纯的键的集合,其中键是不能重复的。
set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。
下面简单总结下set容器的操作:
1、set对象的定义和初始化
set对象的定义和初始化方法包括:
set<T> s;
set<T> s(s1);
set<T> s(b, e);
其中,b和e分别为迭代器的开始和结束的标记。
例如:
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main(){
vector<int> v;
for (int i = 0; i < 10; i++){
v.push_back(i);
v.push_back(i);
}
set<int> s(v.begin(), v.end());
printf("%d\n", v.size());
printf("%d\n", s.size());
return 0;
}
注意:键是不能重复的。
2、set中数据的插入
与map不同,set中数据只能通过insert()函数进行插入。
例如:
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main(){
vector<int> v;
for (int i = 0; i < 10; i++){
v.push_back(i);
v.push_back(i);
}
set<int> s;
s.insert(v.begin(), v.end());
set<int>::iterator it;
for (it = s.begin(); it != s.end(); it++){
printf("%d\t", *it);
}
printf("\n");
s.insert(10);
for (it = s.begin(); it != s.end(); it++){
printf("%d\t", *it);
}
printf("\n");
return 0;
}
3、从set中查找和读取元素
从set中查找同样可以使用count()函数和find()函数,两者的区别在之前的map中已经总结。
例如:
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main(){
vector<int> v;
for (int i = 0; i < 10; i++){
v.push_back(i);
v.push_back(i);
}
set<int> s;
s.insert(v.begin(), v.end());
set<int>::iterator it;
for (it = s.begin(); it != s.end(); it++){
printf("%d\t", *it);
}
printf("\n");
printf("%d\n", s.count(9));
printf("%d\n", *(s.find(9)));
return 0;
}
4、从set中删除元素
从set中删除元素使用到的函数是erase()函数,主要有以下的几种形式:
erase(k);
erase(p);
erase(b, e);
其中,p表示的迭代器指向的元素,b和e分别是迭代器的开始和结束。
例如:
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main(){
vector<int> v;
for (int i = 0; i < 10; i++){
v.push_back(i);
v.push_back(i);
}
set<int> s(v.begin(), v.end());
set<int>::iterator it;
for (it = s.begin(); it != s.end(); it++){
if (*it == 5){
break;
}
}
s.erase(it, s.end());
set<int>::iterator it_1;
for (it_1 = s.begin(); it_1 != s.end(); it_1++){
printf("%d\t", *it_1);
}
printf("\n");
return 0;
}
C++——set基本操作总结相关推荐
- 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)
我们先来看一个关于查找的例子.查找,就是从复杂的数据结构中,找到满足某个条件的元素.通常可从以下两个方面来对数据进行查找操作: 根据元素的位置或索引来查找: 根据元素的数值特征来查找. 针对上述两种 ...
- pytorch方法,Tensor及其基本操作_重点
由于之前的草稿都没了,现在只有重写-. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...
- Gradle安装使用以及基本操作
转自:https://www.cnblogs.com/linkstar/p/7899191.html Gradle安装使用以及基本操作 阅读目录 简单介绍 安装 使用idea创建一个web的Gradl ...
- c++文件读取空格_程序员术与道:术—C语言对文件进行处理,文件处理的基本操作...
各种编程语言都实现了文件的基本操作,提供了对应的接口,本篇文章先为你介绍C语言对文件进行处理和文件处理的基本操作.主要从以下几个方面进行介绍: 读取文件 写入文件 重命名文件 读取目录 读取目录下的文 ...
- 【Pandas库】(3) DataFrame的创建方法及基本操作
各位同学好,今天给大家介绍一下Pandas库中DataFrame类型数据的创建方法和基本操作. 文章内容如下: (1)使用字典类创建. 字典类有:①数组.列表.元组构成的字典:②Series构造的字典 ...
- 【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句
一.缩略语 PK:primary key 主键 NN:not null 非空 UQ:unique 唯一索引 BIN:binary 二进制数据 UN:unsigned 无符号整数(非负数) ZF:zer ...
- MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...
### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...
- OpenCV-Java版学习(3.对视频的基本操作)
前言 上一节我们学习了使用OpenCV对图像进行一些基础操作,现在我们学习对视频进行一些基础的操作. 对视频的基本操作 从相机中读取视频 我们从电脑自带的摄像头捕捉一段视频并在屏幕上显示出来,代码如下 ...
- JDBC编程:2(数据库的基本操作)
数据库的基本操作 查询数据 在开始前先简单地介绍一下什么是静态SQL和动态SQL: 静态SQL,在编译阶段就可以确定数据库要做什么事情.在某种高级语言中,如果嵌入了SQL语句,而这个SQL语句的主体结 ...
- c语言栈的实现以及操作_数据结构之链栈基本操作的实现详解(C语言描述)
迎新过后,来带领你好好学习的小软准时归来,快带着上次学习链表操作的记忆和我开启新的旅程吧: 链栈:就是栈的链式存储结构,简称链栈. 首先我们要考虑的就是链栈的存储结构,由于栈只是在栈顶进行插入和删除操 ...
最新文章
- Python之通过for循环比较Python与Ruby编程思想的差别
- 如何将mysql文件导入MySQL_如何将mysql5的sql文件导入到mysql4?
- reg类型变量综合电路_Verilog中reg型变量的综合效果(待补充)
- C#基础学习第一天(.net菜鸟的成长之路-零基础到精通)
- mod sim tcp配置_ModSim32-ModScan32Modbus调试工具使用及配置说明
- 关于EXCEL打开VBA时发生vbe6ext.olb不能被加载及内 存溢出错误的解决方法
- 十月微信小程序导航:官方文档+精品教程+demo集合(10月14日更新)
- 从零开始写触摸屏驱动(Linux4.3.2 JZ2440V3 480*272)
- shell 修改文件格式
- js根据身份证 判断性别 出生、年龄、出生年月日
- 驻点(稳定点,临界点,要求平滑) 极值点 拐点 保号性及证明
- webim--web端即时通讯的实现
- umi首屏加载速度优化
- Hive汽车销售数据分析系统实战开发:
- 解决Playbook不能充电的问题
- Android bugreport工具分析和使用
- 刷程序对车危害_刷ECU是什么意思,对车子的伤害有多大?
- python sklearn Rideg岭回归--交通流量预测实例
- 时间序列分析应用实例(使用Eviews软件实现)
- 智能家居之设备配网(理论篇)
热门文章
- 苏宁零售云,“动物凶猛”
- 基于机器学习的电力系统故障分类预测模型
- Win11色温如何进行调整设置
- 职业生涯自我规划五步法
- C语言及程序设计 套餐 课程主页
- 转:色情网站背后的秘密 播放器捆绑木马传毒
- Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage
- 购物网站商城系统,购物网站毕业设计,B2C网上购物系统毕业设计
- EOS竞猜游戏SKR EOS遭黑客攻击,成都链安已于前天发出预警
- Latex表格换行垂直居中对齐