set头文件使用方法
平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。
构造set集合主要目的是为了快速检索,不可直接去修改键值。
常用操作:
1.元素插入:insert()
2.中序遍历:类似vector遍历(用迭代器)
3.反向遍历:利用反向迭代器reverse_iterator。
例:
set s;
......
set::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++)
4.元素删除:与插入一样,可以高效的删除,并自动调整使红黑树平衡。
set s;
s.erase(2); //删除键值为2的元素
s.clear();
5.元素检索:find(),若找到,返回该键值迭代器的位置,否则,返回最后一个元素后面一个位置。
set s;
set::iterator it;
it=s.find(5); //查找键值为5的元素
if(it!=s.end()) //找到
cout<<*it<<endl;
else //未找到
cout<<"未找到";
6.自定义比较函数
(1)元素不是结构体:
例:
//自定义比较函数myComp,重载“()”操作符
struct myComp
{
bool operator()(const your_type &a,const your_type &b)
[
return a.data-b.data>0;
}
}
sets;
......
set::iterator it;
(2)如果元素是结构体,可以直接将比较函数写在结构体内。
例:
struct Info
{
string name;
float score;
//重载“<”操作符,自定义排序规则
bool operator < (const Info &a) const
{
//按score从大到小排列
return a.score
}
}
set s;
......
set::iterator it;
set头文件使用方法相关推荐
- linux默认头文件,Linux安装合适内核头文件的方法
摘要 腾兴网为您分享:Linux安装合适内核头文件的方法,桌面时钟,中建在线,圆通金刚,西餐菜谱等软件知识,以及万象,我不信表情包,兔子洞,服你网,电商直播app,网络工具箱,ffu文件,电脑功率计算 ...
- 《IAR添加文件夹和头文件的方法》
最近在移植别的公司的代码,使用IDE是IAR,由于不熟悉使用,在这里做个记录. 添加文件夹和头文件的方法 添加文件夹的方法: (1) 右键项目 (2)选择add (3)选择add group 然后添加 ...
- CCS编译添加链接库文件与头文件的方法
编译的include文件目录 Compiler -> Preprocessor->include search path //include文件搜索路径 $(Proj_dir); ...
- C语言引用不同路径下的头文件的方法
C语言学习笔记,备查: 希望在一个A.c文件中引用另一个B.c文件的方法,可以将B.c文件中的方法提取至B.h头文件,然后在B.c和A.c中分别用#include "XXX/B.h" ...
- 【IAR】IAR for MSP430添加头文件的方法
一.问题由来 在使用IAR for MSP 430编译代码时,用户为了方便管理文件,会将编写的.c和.h头文件存放在不同的路径下,这个路径是用户自定义的路径,因此我们不能直接在main.c文件中直 ...
- 在Windows环境下使用与Linux/Unix操作相关的C/C++头文件的方法(以TDM-GCC和CLion为例)
前言 很多时候我们需要在Windows环境中写与Linux/Unix相关的C/C++代码,而Linux/Unix相关的头文件在Windows中是缺失的,这就导致IDE的文本纠错等功能无法正常使用带来很 ...
- C/C++不同文件夹下包含头文件的方法及#include的使用
本文主要介绍了如何不同文件夹下使用预处理器指示符#include. 假设我们有如下一个工程,其中包含了几个源代码文件和头文件.其中main.c是主源代码文件,里面包含main函数. X 在bas ...
- Keil软件Project显示隐藏.h头文件的方法
在Project内的任意文件夹或文件上点击右键,选择Show Include File Dependencies,.c文件边上就会出现+号,可以查看.h头文件,相反,取消选择就可以隐藏.h头文件
- 矩池云上缺少cusparse.h头文件解决方法
1.检查系统版本 source /etc/os-release && echo $VERSION_ID 2.导入apt仓库和其GPG key # 第一步若输出 16.04 curl - ...
- 矩池云上缺少curand.h、cublas_v2.h、cusolverDn.h头文件解决方法
1.检查系统版本 source /etc/os-release && echo $VERSION_ID 2.导入apt仓库和其GPG key # 第一步若输出 16.04 curl - ...
最新文章
- Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析(6)
- java 枚举 下拉框_枚举enum在velocity模板语言中的应用-下拉菜单
- 开源大数据周刊-第103期
- 如何阻止表单的默认提交事件
- linux内核参数调优,缓冲区调整,tcp/udp连接管理,保持,释放优化,gossary,terms
- Express 4.x Node.js的Web框架----《转载》
- Object slicing(对象切片)
- 谷歌SEO考虑富媒体文件
- 寒假每日一题——贝茜放慢脚步
- html 标签英文全称,html标签英文全称
- HTTP请求/响应报文结构
- 先锋年度新品T1,真无线通话降噪蓝牙耳机测评
- 一文多图搞定制作自己的VOC数据集+使用yolov4训练自己的数据集+封装video测试脚本(基于ubuntu)
- 国外问卷调查这个项目可以做吗?国外问卷调查怎么赚钱?
- 问题 G: 向右看齐
- 攻防世界crypto高手题之sherlock
- go语言package简单理解
- 金融科技之:互联网贷款企业运营规范
- 反射光栅 PRK46C.D4P-M12
- 超详细——Java面试高频
热门文章
- Linux 安装Oracle10g
- java 根据 SVN changeLog 文件 生成增量升级包
- attention与self attention的区别
- 日语语法笔记【翻译】
- 内网渗透(四十六)之横向移动篇-使用系统漏洞ms17010横向移动
- SSM框架与Springboot框架的区别
- 详解sprintf()sprintf_s()
- Unix/Linux下的Curses库开发指南——第三章curses库窗口
- python变量名长度有限制吗_怎么去除 Python 下载文件时的文件名长度 50 限制
- 关于小红书的小程序不同数量的轮播图,展示不一样的轮播指示点的实现