拥抱STL - 类/结构体元素查询与排序
时间:2022-07-23
本文章向大家介绍拥抱STL - 类/结构体元素查询与排序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我觉得,如果容器用来放基础数据类型,那真是浪费。 怎么说也要放个结构体或者类吧。
//先来看一下元素配置,这个栗子是将类对象塞进 list 容器,半年前某个项目里的代码、
W_RinkData::W_RinkData(int temp,int ID,int Dif,int Score)
{
this->temp = temp;
this->Diff = Dif;
this->ID = ID;
this->Score = Score;
}
//这是元素类的结构,可以看出来这是个排行榜
//用来排序的算法,按分数排序
int compare(W_RinkData &infoA,W_RinkData &infoB)
{
return infoA.Score>infoB.Score;
}
//自己封装个排序函数
void X_RinkList::mysort()
{
B_Sql *sql = B_Sql::instence("User.db");
int Count = sql->CountCow("select * from User_Rink_MSG");
for( int i = 0; i<Count; i++)
{
QString ID = sql->PrintTable(QString("select id from User_Rink_MSG where temp = %1").arg(i));
QString Difffff = sql->PrintTable(QString("select difficult from User_Rink_MSG where temp = %1").arg(i));
QString Scoreeee = sql->PrintTable(QString("select score from User_Rink_MSG where temp = %1").arg(i));
int id = ID.toInt();
int dif = Difffff.toInt();
int score = Scoreeee.toInt();
W_RinkData aa(i,id,dif,score);
rink_list.append(aa);
qSort(rink_list.begin(),rink_list.end(),compare); //重点看这行,标准中为sort函数
}
}
//再看看怎么把值取出来
W_RinkData node;
for(it = rink_list.begin();it != rink_list.end();it++)
{
node = *(it); //构造函数记得写
cout<<node.score<<endl;
}
//然后再说说搜索
为什么就那么喜欢find_if,放下执念吧,
find_if也是用个迭代器去遍历取值比对,既然咱已经可以自己取值了,咱就写个自己的find_if呗。
如果觉得我的方法不好(我这毕竟是伪代码)推荐这篇:运算符重载实现排序及查找,写的挺好,就是测试的时候可能会有点出入。
- 日志分析实战之清洗日志小实例7:查看样本数据,保存统计数据到文件
- hdu----(1671)Phone List(Trie带标签)
- PHP-数组
- hdu---1506(Largest Rectangle in a Histogram/dp最大子矩阵)
- 日志分析实战之清洗日志小实例6:获取uri点击量排序并得到最高的url
- golang使用sort接口实现排序示例
- hdu----(5056)Boring count(贪心)
- hdu----(5055)Bob and math problem(贪心)
- hadoop3.0 Yarn支持网络资源:network原理设计文档说明【中文】
- PHP-超级全局变量
- 日志分析实战之清洗日志小实例5:实现获取不能访问url
- CentOS安装Redis、PHPredis扩展
- 日志分析实战之清洗日志小实例4:统计网站相关信息
- PHP-数组排序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android bindservice失败解决方法
- Android 悬浮窗权限各机型各系统适配大全(总结)
- Android中Fragment相互切换间不被回收的实现方法
- Android手机管理工具类详解
- 通过代码学Sutton强化学习第四章动态规划
- android通过okhttpClient下载网页内容的实例代码
- Android自定义键盘的实现(数字键盘和字母键盘)
- Android iconify 使用详解
- XRecyclerView实现下拉刷新、滚动到底部加载更多等功能
- 浅析Android 快速实现图片压缩与上传功能
- Android处理时间各种方法汇总
- Android TextView Marquee的应用实例详解
- Android毛玻璃背景效果简单实现代码
- ClickHouse和他的朋友们(3)MySQL Protocol和Write调用栈
- ubuntu安装多个版本的CUDA并随时切换