QMap的排序

2023-11-01

QMap排序方法运用实例

QMap的升序排序,巧妙避开默认排序规则。

QMap 如何根据value排序?

==================================

QMap排序方法运用实例

  QMap排序方法运用实例_Music 爱好者的博客-CSDN博客

QVector<QPointF> ReadSonicPoint::sortSonicPoint(QVector<QPointF> befPointVector) //把x轴的值从小到大排序
{
    QVector<QPointF> modPointVector;
    QMap<double, double>sonicMap; //利用QMap自动排序
    for (int i = 0; i < befPointVector.size(); i++)
    {
        sonicMap.insert(befPointVector[i].x(), befPointVector[i].y());
    }
    QMap<double, double>::Iterator it = sonicMap.begin();
    while (it!=sonicMap.end())
    {
        QPointF sonicPoint;
        sonicPoint.setX(it.key());
        sonicPoint.setY(it.value());
        modPointVector.append(sonicPoint);
        i++;
    }
    return modPointVector;
}

QMap的升序排序,巧妙避开默认排序规则。

结论:QMap的升序排序是指对key值的首字母的Ascii码顺序来确定的。

可以看出多个字符的key值,首字母排序后,如果首字母相同,则从第二个字母按照ASCII顺序来排序。

通过以上规律当我们需要顺序排序时,就不要将key值的类型定义为QString、QByteArray等字符串类型,而需要定义为int型。:(注意:有些场景,int并不适用)。

  https://blog.csdn.net/weixin_43246170/article/details/128917491

QMap 如何根据value排序?

原文链接:

https://www.fearlazy.com/index.php/post/268.html

需求:

有一个QMap<QString,qreal> map, 存储的数据为名字对应值,如: apple -> 12.2 , orange-> 23.3,banana->10.5。 现在需要按照map元素值的升序的顺序获取QMap中的所有元素。

也就是希望获得的结果是:banana,10.5 -> apple,12.2 -> orange,23.3 。

方法:

 qSort可以实现对容器排序,但是无法对QMap使用qSort

 我们可以先将QMap中的元素放入到 QVector,然后,再对 QVector进行排序,最终获得排序后的数据。

测试:

 

为了更好理解,程序中将map元素的数据类型定义为fruit。

排序的关键在于qSort第三个参数的编写,它是一个函数,用来判断元素的大小。 为了方便 这里使用了lambda表达式。

程序输出结果:


————————————————
版权声明:本文为CSDN博主「fearlazy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/can3981132/article/details/115261721

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QMap的排序 的相关文章

  • -ffast-math 可以安全地用于典型项目吗?

    在回答我建议的问题时 ffast math 有评论指出这是危险的 我个人的感觉是 在科学计算之外 是可以的 我还假设严肃的金融应用程序使用定点而不是浮点 当然 如果你想在你的项目中使用它 最终的答案是在你的项目上测试它 看看它有多大影响 但
  • 从服务器下载图像(cUrl,但接受建议)C++

    我试图通过从服务器 网站 下载图像来设置旋转背景图像 并尝试使用curl 来执行此操作 但是在执行此操作方面取得了0 成功 我的代码的 缩短的 版本如下 我没有收到错误 但是 如何 临时 保存该图像以将其显示为背景 是否有图像 类型变量 或
  • C++ STL 映射,std::pair 作为键

    这就是我通过地图定义的方式 std map
  • 如何配置 Ninject 来注入 NodaTime IClock

    在我的 NinjectConfigurator 中我有 container Bind
  • 如何在 ASP.NET MVC 中处理会话数据

    假设我想存储一个名为language id在会议中 我想我也许可以做如下的事情 public class CountryController Controller WebMethod EnableSession true AcceptVer
  • 二叉树和快速排序?

    我有一个家庭作业 内容如下 别生气 担心 我是not请你帮我做作业 编写一个程序 通过使用二分查找的快速排序方法对一组数字进行排序 树 推荐的实现是使用递归算法 这是什么意思 到目前为止 这是我的解释 正如我在下面解释的那样 我认为两者都有
  • 以编程方式更新 Wifi 网络

    我正在尝试创建一个程序 当某个 wifi 网络在范围内时 该程序会连接到该网络 即使已经连接到另一个 wifi 也是如此 我在用着简单Wifi https github com DigiExam simplewifi 基本上效果很好 除了在
  • 如何在 Windows 上的 GCC 中链接 CS50 C 库

    我是 编程新手 一直在尝试使用以下命令编译我的代码MinGW https en wikipedia org wiki MinGW GCC 但我尝试包括CS50 https en wikipedia org wiki CS50 cs50 c
  • C++:避免​​在重载中将字符串自动转换为布尔值

    我想创建一组方法 这些方法将根据其类型输出具有特殊格式的值 当我这样做时 到目前为止看起来还不错 static void printValue std ostringstream out int value out lt lt value
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 如何在C++中列出Python模块的所有函数名称?

    我有一个 C 程序 我想导入一个 Python 模块并列出该模块中的所有函数名称 我该怎么做 我使用以下代码从模块中获取字典 PyDictObject pDict PyDictObject PyModule GetDict pModule
  • 对列表中的一系列整数求和

    假设我有一个这样的列表 List
  • 为什么 C# 中的命名空间允许循环依赖?

    在 c 中 您可以在文件 a cs 其命名空间为 MyApp A 中拥有一条语句 using MyApp B 而文件 b cs 其名称空间为 MyApp B 已经包含该语句 using MyApp A 如果类似的依赖关系存在于不同的 dll
  • 如何处理文件名中的空格

    我正在尝试迭代本地目录中的文件 foreach string name in Directory GetFileSystemEntries path FileAttrtibutes att File GetAttributes name 文
  • PyQt:在运行时向滚动区域添加小部件

    我试图在运行时通过按下按钮来添加新的小部件 在下面的示例中我使用标签 这里是例子 import sys from PyQt4 QtCore import from PyQt4 QtGui import class Widget QWidge
  • 用 std::generate_n 填充 std::map

    我想填写一个std map using std generate n但无法让它发挥作用 我尝试过的是这样的事情 unsigned number of pairs 5 std map
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest
  • C 中的等效 plpgsql 触发器

    我有一个 PostgreSQL 9 0 服务器 并且在某些表上使用继承 因此我必须通过如下触发器模拟外键 CREATE OR REPLACE FUNCTION othertable before update trigger RETURNS
  • 在for循环中声明和初始化变量

    可以简单写一下吗 for int i 0 代替 int i for i 0 在 C 或 C 中 并且会变量i只能在循环内部访问 它在 C 中有效 它在 C 的原始版本中是不合法的 但在 C99 中被采用为 C 的一部分 当时一些 C 功能被
  • 获取线段上最接近另一个点的点[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想找到线段AB上最接近另一个点P的点 我的想法是 Get a1 and b1由直线公式y1 a1x b1 使用 A 点

随机推荐

  • 搜索是过拟合的生成;生成是欠拟合的搜索

    神经搜索的最大竞争者可能来自于一种甚至不需要向量嵌入作为中间表示的技术 一种直接返回你想要的结果的端到端技术 那么 谁将是神经搜索最大的竞争对手 本文作者 肖涵 Jina AI 创始人兼 CEO 谁将是神经搜索最大的竞争对手 就在 2019
  • 【LVGL 学习】COLOR 常用接口函数说明

    COLOR 接口常用函数说明 通常跟样式 style 接口函数搭配使用 文件位置 src misc lv color c lv palette t 枚举包含以下18种 LV PALETTE RED LV PALETTE PINK LV PA
  • php的接口怎么用postman测试,使用postman做接口测试

    postman功能说明 接口的组成 request 请求 请求地址 url 请求类型 method 请求头 headers 请求数据 data 请求格式按接口文档填写 response 响应 响应数据 状态码 200 接口运行正常 400
  • 请阐述分治算法、动态规划算法、贪心算法三者的共同点与区别,以及它们都有哪些优势和劣势?...

    分治算法 动态规划算法 贪心算法三者共同点 都是用于解决复杂问题的算法 都是通过将大问题分解为若干个小问题来解决问题的 不同点 分治算法的思路是通过不断分解问题的规模 最终到达一定的规模 然后再合并结果来解决问题 动态规划算法通过对问题的拆
  • [C++] 线程同步的四种方式和demo

    源码路径 dangwei 90 ThreadSync 线程同步 github com https github com dangwei 90 ThreadSync 编译平台 win10 编译工具 vs2019 语音 C 线程同步的四种方式
  • 七牛云图片上传

    进入七牛云的网站 https portal qiniu com
  • hive库操作示例

    hive库操作示例 1 常规表 创建数据库 CREATE DATABASE mydatabase 使用数据库 USE mydatabase 创建表 CREATE TABLE mytable id INT name STRING age IN
  • Linux卸载home独立分区

    最近编译了一个新的Linux内核 安装的时候如果直接make install 那么镜像文件会和原来的系统放在一块 登录的时候账户 桌面配置等都是一样的 只是内核不一样 其它都是共享的 看不出两个内核有啥区别 因此想在一个独立的分区放置新的内
  • Spring Web MVC和Hibernate的集成

    网上看到很多关于Spring与Hibernate的集成的文章 奈何由于那些文章写作时间较早 很多都是Spring 3 和Hibernate 4等较旧的版本 所以我在这里使用更新的版本来说明一下 添加项目依赖 首先我们需要一个Java Web
  • egg框架(用户鉴权,token验证,以及前端简略配置)

    最近在研究阿里出的egg 想写一个后台管理系统 但是用了egg nunjucks之后 感觉它的模板渲染很僵硬 模板页面无法直接调用service的方法来操作数据库 但是用常规的form表单提交到路由 感觉又很奇怪 还是要请求api 那我为什
  • Ubuntu显示美化 优化 常用插件

    Ubuntu显示美化 优化 常用插件 1 安装 Extension Manager 2 网速显示 不显示总流量记得关掉 3 顶部透明度 4 左侧dock导航透明度 5 过渡动画 2022 01 22 毛玻璃效果 和 程序启动背景墙效果 20
  • TortoiseGit提示No supported authentication methods available异常

    TortoiseGit他属于git的客户端 可有可无 说白了就是将git命令给我们整理成了可直接操作的按钮 本地代码是使用了SSH的方式去拉取的代码 但是通过TortoiseGit pull代码的时候发生了如下异常 而GitBash却可以正
  • 蓝桥杯单片机第14届模拟题第三套

    总的来说14届省赛的模拟题都是考串口通信的 都做完基本没什么问题了 题目 代码 main函数 include stc15f2k60s2 h include intrins h include iic h include stdio h sb
  • 安卓手机硬改软件介绍。改机软件 改手机参数

    https www bilibili com video BV1Pp4y1S7hK 视频地址 硬改无需root权限 改完就是新机 手机端能一键操作的都是软改 就好比你女朋友化妆了还是你女朋友 硬改相当于换了一个新的女朋友
  • 初学者应该这样看盘

    首先在 开盘 时要看集合 竞价 的股价和成交额 看是高开还是低开 就是说 和昨天的收盘价相比价格是高了还是低了 它表示出市场的意愿 期待今天的股价是上涨还是下跌 成交量的大小则表示参与买卖的人的多少 它往往对一天之内成交的活跃程度有很大的影
  • Unity3D Glow Effect 自发光 颜色溢出效果

    unity自带的image effect中的一个摄像机特效 但它是针对全屏幕渲染的 而且我们要明确一点 只需你知道我们场景中的GameObject的材质shader通过alpha通道进行控制这个光晕的 也就是说将alpha变成0那么将是原来
  • 合工大 编译原理 实验

    目前仅有实验一二三四 Windows桌面应用程序项目 开发语言 c 开发环境 Visual Studio 实验一 GitHub 实验二 传送门 实验三 传送门 实验四 传送门 实验一大致功能 支持程序运行时输入关键词 支持已保存关键词的表格
  • Ethereum私有网络的搭建

    好久没有弄以太坊 因为工作需要 需要搭建一个以太坊的私有网络 private network 0 实验环境 3台阿里云服务器 Ubuntu 16 04 分别简称为ali1 ali2 ali3 1 Ethereum节点的编译 安装 这一点无需
  • DAY40:贪心算法(九)单调递增的数字(贪心的思路)

    文章目录 738 单调递增的数字 暴力解也需要看一下 暴力解写法 注意 必须引入 isIncreasing 变量的原因 贪心思路 遍历顺序 最开始的写法 debug测试 逻辑错误 修改版 debug测试 int转化为字符串的原因 to st
  • QMap的排序

    QMap排序方法运用实例 QMap的升序排序 巧妙避开默认排序规则 QMap 如何根据value排序 QMap排序方法运用实例 QMap排序方法运用实例 Music 爱好者的博客 CSDN博客 QVector