【C++简明教程】Python和C++指定元素排序比较

2023-11-11

Python 中的排序

在 Python 中,常用的排序就是 sorted ,对于列表这种数据结构来说,还有 sort 方法

列表的排序

使用 sort 方法进行排序,以第二个值进行升序排序,列表的 sort 方法是原地排序

另外一种排序方法是 sorted ,此方法不是原地排序,以第一个值进行排序,同样也是默认升序排序

字典排序

有时候我们也需要对字典进行排序,也是使用 sorted 函数,不过对字典排序后返回的是列表,列表中是元组(tuple)

C++ 中的排序

对 vector 排序

要对 vector 容器中的元素排序,可以使用 algorithm 算法库中的 sort 函数

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;

int main() {
 vector<int> a;
 cout << "sort before" << endl;
 for (int i = 0; i <10; i++){
  a.push_back(10-i);
  cout << a[i] << "  ";
 }
 cout << endl;
 cout << "sort after" << endl;
 sort(a.begin(), a.end());  // 
 for (int i = 0; i < 10; i++)
 {
  cout << a[i] << "  " ;
 }
 cout << endl;
 return 0;
}
对 2 维vector  排序

类似于 Python ,我们也可以指定根据哪个元素进行排序

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;

# 根据第二个元素进行排序
bool sort_by_second_val(vector<int> v1, vector<int> v2) {
 return v1[1] > v2[1];
}

int main() {
    // 模拟一个输入
 vector < vector<int>> arr;
 for (int i = 0; i < 10; i+=2)
 {
  vector<int> temp;
  temp.push_back(i);
  temp.push_back(i+1);
  arr.push_back(temp);
 }
    // 排序前:arr = [[0, 1], [2, 3], [4, 5], [6, 7],[8, 9]]
 sort(arr.begin(), arr.end(), sort_by_second_val);
    // 排序后:arr = [[8, 9], [6, 7], [4, 5], [2, 3],[0, 1]]
 return 0;
}
对结构体进行排序

模拟一个学生管理系统,依次创建学生信息,然后加入到 vector 中,接着对学生的年龄进行排序

#include<vector>
#include<iostream>
#include<algorithm>
#include <string.h>
using namespace std;

struct Studen{
 string name;
 int age;
};

bool sort_by_age(Studen s1, Studen s2) {
 return s1.age<  s2.age;

}

int main() {
 vector<Studen> studens;  // 用来存储所有学生的信息
 Studen s1, s2, s3;   // 创建 3 个学生
 s1.name = "xx";
 s1.age = 20;
 studens.push_back(s1);

 s2.name = "yy";
 s2.age = 18;
 studens.push_back(s2);

 s3.name = "zz";
 s3.age = 10;
 studens.push_back(s3);

 sort(studens.begin(), studens.end(), sort_by_age);

 return 0;
}

排序前

排序后

下载 1

在【机器视觉CV】公众号后台回复 CPP,获取 CPP 开发手册

下载 2

在【机器视觉CV】公众号后台回复 

YOLO 获取 YOLO 权重,回复 深度学习 获取学习资源,回复 表情识别 获取表情识别实战项目

机器视觉 CV

与你分享 AI 和 CV 的乐趣

分享数据集、电子书、免费GPU

长按二维码关注我们

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

【C++简明教程】Python和C++指定元素排序比较 的相关文章

  • iPad Safari 100% 高度问题

    我的页面上有一个模态 div 它使背景变灰 如果我将overlay div的高度设置为100 它在IE 桌面 上工作正常 但在iPad Safari上 完整的高度不会变灰 究竟是什么问题 这与固定位置 视口有关吗 请帮忙 下面是相同的 CS
  • IE10中的图像插值

    这是我的用例 我有一个采用响应式设计的网页 该页面垂直分成两半 我想在右侧显示图像 呈现为 PNG 或 JPG 的 PDF 页面 调整窗口大小后 图像的大小应立即更改 我以为我已经解决了这个问题 我将服务器上的图像渲染得足够大 以适应最大可
  • 我可以在不同浏览器中获得一致的 CSS 颜色吗?

    我正在测试一个新网站 并且我有一个 div background color bbf6bb 这对我来说似乎无害 然而 在我的 MacBook Pro 上 Firefox 3 6 与 Safari 4 中的颜色看起来非常不同 在 Safari
  • 如何更改元素的 CSS 类并在单击时删除所有其他类

    我如何处理 AngularJS 2 中的一种情况 即单击一个元素需要更改其自己的样式 并且如果其他元素具有该样式 则需要将其删除 最好在一个函数中 如同Angular js 如何在单击时更改元素 css 类并删除所有其他元素 https s
  • 媒体查询:如何定位桌面、平板电脑和移动设备?

    我一直在对媒体查询进行一些研究 但我仍然不太明白如何定位特定大小的设备 我希望能够针对台式机 平板电脑和移动设备 我知道会存在一些差异 但如果有一个可用于针对这些设备的通用系统 那就太好了 我发现的一些例子 Mobile only scre
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo
  • 横向旋转到纵向时的字体大小怪异 - CSS 媒体查询 - iPhone5 Safari

    我已经用谷歌搜索了这个 但无法弄清楚 谢谢你的帮助 Studiolynch com 响应式和流体布局 在 iphone 5 Safari 中完美运行 除了从横向模式旋转到纵向模式会使字体大小小于应有的大小 但是 如果您最初以纵向模式加载页面
  • Javascript 放大/缩小到鼠标 x/y 坐标

    我设法让鼠标拖动来滚动div 但是用鼠标放大 缩小不完整 它有效 但我希望鼠标指针将图像保持在该位置并同时缩放它 如下所示 我需要使用scrollBy 将滚动返回到缩放之前的上一点 有人知道该怎么做吗 这是某人制作的小提琴https jsf
  • Twitter Bootstrap - 多图像(缩略图)轮播 - 一次移动一个缩略图

    我正在尝试 Twitter bootstrap 3 我对 HTML CSS 和 Javascript 还很陌生 我有一个我创建的轮播 它的代码如下所示 div class container div class carousel slide
  • 编辑角度材质的表格单元格填充

    当我使用开发人员工具检查该元素时 它显示零填充 但是当我查看它并将鼠标悬停在它上面时 它非常清楚地在单元格内具有填充 我不知道这是从哪里来的 并且设置td padding 0 important 什么也没做 感知到的填充是由以下原因引起的d
  • 使用 jQuery 检测容器溢出?

    我见过这个问题 https stackoverflow com questions 2059743 detect elements overflow using jquery但感觉必须有一个 更干净 的 jQuery 方法来做到这一点 我什
  • 新BFC“清”浮箱

    如示例所示 应用display inline block 到包含块似乎 清除 了其中的浮动框 wrapper inline block display inline block left column background color te
  • 底部页脚的 css 布局,动态 ajax 内容更改页面高度

    Update 实际上 我现在通过放弃固定页脚设计来解决这个问题 动态内容移动页脚并适当调整容器大小似乎没有问题 除非页脚最初固定在浏览器底部 我希望其他人最终能够提供一个兼具两全其美的出色解决方案 I spent all day tryin
  • CSS:如何在模糊的背景上剪切文本?

    我想重新创建以下样式 我想出了以下内容 问题是剪切不会影响模糊滤镜 我不知道如何解决它 这是我的 HTML 代码 glass width 40 height 100 position absolute background rgba 255
  • CSS :hover 影响所有子 div

    我里面有一个父 div 和多个子 div 我希望这样 如果您将鼠标悬停在父 div 上 它会以不同的方式影响所有子 div 的悬停状态 即 一个 div 的文本带有下划线 另一个 div 的文本会更改颜色 并且保存图像的 div 使图像稍微
  • 左对齐图像和居中文本在 div 内的同一级别?

    HTML br div class UpperTitle img src align left CableSolve Web Dashboard Version 0 1 1 div br CSS UpperTitle text align
  • MVC4 捆绑:由于 css3 功能而缩小失败?

    我想使用 MVC4 捆绑和缩小 但我总是在未缩小的 css 文件中收到此错误消息作为注释 Minification failed Returning unminified contents 534 29 run time error CSS
  • CSS calc() 是否可以得到负值?

    假设我们有一个位于视口中心的容器 centered margin 0 auto width 960px 在该容器内 我有另一个容器 其宽度需要为视口宽度的 100 我可以将边距设置为 widest margin 0 480px 例如 问题是
  • tr 元素周围的边框不显示?

    Chrome Firefox 似乎不渲染边框tr 但如果选择器是 它会渲染边框table tr td 如何在 tr 上设置边框 我的尝试 不起作用 table tr border 1px solid black table tbody tr
  • 文本溢出:省略号显示不同的字符

    我这里遇到了一些 CSS 问题 看这张图片 https www flickr com photos 125543025 N07 saved 1 在此图像中 我为文本 INTENSE TRAINING 添加了 CSS 样式 sample st

随机推荐

  • 通过opencv与神经网络对滑动验证码的一次深入学习

    好久没写博客了 人到中年 有点儿犯懒 从信息安全行业 又去了IT合规领域 与信息安全结合还是两手抓 两手都不硬 由于工作原因 需要获取一个token来请求接口 奈何没有现成的接口 需要在web端登录才可以获取 既然如此 想要实现这个功能肯定
  • 【LeetCode解题报告】《算法基础009_算术基本定理》- Java

    目录 一 507 完美数 1 题目 2 分析 3 代码 二 263 丑数 1 题目 2 分析 3 代码 一 507 完美数 1 题目 507 完美数 对于一个 正整数 如果它和除了它自身以外的所有 正因子 之和相等 我们称它为 完美数 给定
  • PHP通过URL远程下载图片到本地

    一 业务场景 我们需要远程将微信提供接口生成的临时二维码图片下载下来之后使用本地服务器去访问图片并存储在服务器数据库作为记录 此方法同样可以帮助你爬取网上一些公开数据 如cdnjs css 所需参数 公网能够访问到的图片 文件 地址 二 代
  • Source Insight给Linux内核创建工程

    所有文档请关注公众号 一口Linux 后台回复 ubuntu linux驱动视频同步更新到 https live bilibili com 22719960 一 Source Insight安装 1 预先准备好 Source Insight
  • ubuntu 文件删除后磁盘没有释放

    磁盘满了 删除文件后df发现没有变化 base root xddz df h Filesystem Size Used Avail Use Mounted on udev 32G 0 32G 0 dev tmpfs 6 3G 2 8M 6
  • 在JDBC连接池中启动Oracle RAC的TAF

    Oracle RAC 的一个负责故障切换处理的主要组件是透明应用程序故障切换 TAF 选件 下面列举通过JDBC实现的透明应用程序故障切换的代码 more Tele zhou Class forName oracle jdbc driver
  • RabbitMq结合springBoot实现延时任务

    简介 rabbitMQ延时任务的实现思想 rabbitmq实现延时任务本质就是使用 过期时间 和 死信队列 实现的 首先定义一个死信队列和死信队列的消费者 这个死信队列用来接收延时队列过期的消息 死信队列消费者用来接收到过期消息后就进行消费
  • FFmpeg中调用av_read_frame函数导致的内存泄漏问题

    使用FFmpeg的av read frame函数后 每读完一个packet 必须调用av packet unref函数进行内存释放 否则会导致内存释泄漏 在vs 博主所用的ffmpeg版本是3 4 2 vs版本是vs2015 中编译运行如下
  • [语义分割]基于VGG网络搭建FCN-8s并在VOC2012数据集上训练

    文章目录 1 数据集选取 1 1数据集简介 1 2 数据预处理 1 2 1踩坑记录1 1 2 2 读取图片路径 1 2 3 自定义图像增强与预处理模块 1 3自定义数据集类 1 3 1数据标签可视化 2 搭建FCN 8s网络 2 1基础FC
  • uni-app组件传值

    目录 一 父组件给子组件传值 父组件 elementFather vue 子组件 element vue 效果图 二 子组件给父组件传值 子组件 element vue 父组件 elementFather vue 效果图 三 兄弟组件之间传
  • 用jupyter读取mysql中的数据的两种方式

    不管是采用哪种方式都应该先保证创建了目标数据库 即在mysql data文件夹下有以目标数据库名称命名的子文件夹 且子表应该为以下格式 而不是 sql 未执行命令 文件 首选方法二 因为仅SQLAlchemy可连接支持read sql ta
  • img src 使用base64格式 上传、根据文件名显示所有图片 java代码

    最近在做ca签名 key验证通过后传图片为base64格式图片 保存至自己服务器 大概操作 首先获取的src data image png base64 sealBase64 获取到的参数 function qr var base64 im
  • 配置uni-app的开发环境

    点击下载安装Hbuilderx 点击下载微信开发者工具 安装完成后下载导入一些插件依赖 这里用scss举例 https ext dcloud net cn plugin name compile node sass 新建项目 目录结构如下
  • C++ OSD水印叠加

    视频相关领域 监控 LED大屏 很多场合可能会涉及到在一幅画面上进行文字或时间的叠加 常规做法都是在后端实现 即先渲染图像 然后叠加OSD文字信息 这种方法简单且高效 但是有些场合必须要求在前端进行叠加 比如监控领域中视频名称信息 时间信息
  • WMware创建linux虚拟机并配置网络及防火墙

    1 打开VMware并创建虚拟机 基本一直下一步就行了 这里不多做说明了 名称随便取 最好就是master 位置放在自己预定的地方 这些配置参数随便设 差不多就行 创建到此为止 接下来安装linux系统 上下键选择 回车键确定 为了表现专业
  • ERP服务器端安装及配置

    概述 在配置ERP端是 普实系统集成工具同MES端配置时使用的程序类似 不硬性规定在哪台服务器上安装 只要能够连上ERP服务器即可 安装过程类似于系统集成工具 安装完成后 在开始中的菜单文件夹为Pushsoft Intergration 操
  • 锤子剪刀布游戏

    问题描述 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入 输入第1行给出正整数N lt 105 即双方交锋的次数 随后N行
  • RC4文件加密的Python实现方法

    RC4 Rivest Cipher 4 是一种流密码 stream cipher 算法 广泛应用于网络通信和数据加密中 本文将介绍如何使用Python实现RC4文件加密算法 RC4算法的核心是使用一个伪随机数生成器 PRNG 生成密钥流 然
  • 端口显示被占用,如何关闭端口

    用管理员权限打开命令提示符 如果要关闭3306端口 首先要查询此端口号对应的PID 则输入以下命令 1 输入 netstat ano findstr 3306 然后借助命令终止PID对应的进程 输入以下命令 2 输入 taskkill PI
  • 【C++简明教程】Python和C++指定元素排序比较

    Python 中的排序 在 Python 中 常用的排序就是 sorted 对于列表这种数据结构来说 还有 sort 方法 列表的排序 使用 sort 方法进行排序 以第二个值进行升序排序 列表的 sort 方法是原地排序 另外一种排序方法