一、sort

        let mut v = vec![4,3,3,1,2];
println!("{:#?}",v);
v.sort();
println!("{:#?}",v);

结果:

// 排序前结果
[
4,
3,
3,
1,
2,
]
// 排序后结果
[
1,
2,
3,
3,
4,
]

二、sort_by

// 结构体
#[derive(Debug)]
pub struct Preson{
name: String,
age: i64,
gender: String,
}
// 排序代码
let mut v = Vec::new();
let p1 = Preson{
name: "hh1".to_string(),
age: 18,
gender: "men".to_string(),
};
let p2 = Preson{
name: "hh2".to_string(),
age: 16,
gender: "women".to_string(),
};
let p3 = Preson{
name: "hh3".to_string(),
age: 15,
gender: "men".to_string(),
};
let p4 = Preson{
name: "hh4".to_string(),
age: 17,
gender: "women".to_string(),
}; v.push(p1);
v.push(p2);
v.push(p3);
v.push(p4);
println!("{:#?}",v);
v.sort_by(|v1, v2| v1.age.cmp(&v2.age));
println!("{:#?}",v);

结果:

[
Preson {
name: "hh1",
age: 18,
gender: "men",
},
Preson {
name: "hh2",
age: 16,
gender: "women",
},
Preson {
name: "hh3",
age: 15,
gender: "men",
},
Preson {
name: "hh4",
age: 17,
gender: "women",
},
]
[
Preson {
name: "hh3",
age: 15,
gender: "men",
},
Preson {
name: "hh2",
age: 16,
gender: "women",
},
Preson {
name: "hh4",
age: 17,
gender: "women",
},
Preson {
name: "hh1",
age: 18,
gender: "men",
},
]

rust vec排序的更多相关文章

  1. std::bind(二)

    bind - boost 头文件: boost/bind.hpp bind 是一组重载的函数模板. 用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象. 它的源文件太长了. 看 ...

  2. poj 1904 King's Quest

    King's Quest 题意:有N个王子和N个妹子;(1 <= N <= 2000)第i个王子喜欢Ki个妹子:(详见sample)题给一个完美匹配,即每一个王子和喜欢的一个妹子结婚:问每 ...

  3. boost::bind的使用方法

    bind - boost 头文件: boost/bind.hpp bind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象. 它的源文件太长了. 看不 ...

  4. boost bind使用指南

    bind - boost 头文件: boost/bind.hpp bind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象. 它的源文件太长了. 看不 ...

  5. 【统计与建模】R语言基本操作

    # vec <- rep( seq(1,5,by=0.5),3) # vec <- seq( 1 , 10 , by = 1 ) # min(vec) #最小值 # max(vec) #最 ...

  6. sf02_选择排序算法Java Python rust 实现

    Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编 ...

  7. 通过欧拉计划学习Rust编程(第22~25题)

    最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...

  8. Rust基础

    一:编译器 Rust的编译器叫rustc,类似javac一样,负责将源代码编译成可执行文件或者库文件(.a/.so/.lib/.dll等) 二:核心库和标准库 Rust语言由核心库和标准库组成,核心库 ...

  9. Codeforces 1197 E (dp+sort+二分) (Rust)

    原题链接 2300分 大意 俄罗斯套娃,每个有内容半径in和外围半径out in_i<out_i 如果 in_i >= out_j ,那么j可以放在i内 定义残留空间 = 一列嵌套的套娃 ...

  10. 通过欧拉计划学Rust编程(第54题)

    由于研究Libra等数字货币编程技术的需要,学习了一段时间的Rust编程,一不小心刷题上瘾. 刷完欧拉计划中的63道基础题,能学会Rust编程吗? "欧拉计划"的网址: https ...

随机推荐

  1. 线性方程组的直接解法——Gauss消去法

    考虑线性方程组 \[\mathrm{A}x=\mathrm{b} \] 其中,\(\mathrm{A}=(a_{ij})_{n\times n}\),\(\mathrm{b}=[b_1,b_2,\cd ...

  2. c语言基础理解(原创)

          家中小女初上大学开学计算机课程,学习C语言时遇到困难,为帮助她尽快入门,特写了这篇基本概念理解,希望帮她快速认识清楚C语言的本质.发到博客园上,也帮助同样的C语言初学者轻松掌握C语言的本质 ...

  3. C#应用程序配置文件(XML序列化) - 开源研究系列文章

    上次写了一个C#线程池及管理器的博文( C#开发的线程池和管理器 - 开源研究系列文章 ),收到了不小的浏览量,在此感谢各位网友的支持.这次将另一个功能放出来单独讲解:C#应用程序的配置文件,使用的是 ...

  4. Go语言的赞和喷

    (原发于 GitHub Pages,2019-01-01 23:22:43) 2019 年,我回来了. 不知不觉中,我入 PHP 的坑已经 3 年有余,入 Go 的坑也大半年了.作为不评论不舒服斯基星 ...

  5. Spring Cloud服务发现组件Eureka

    简介 Netflix Eureka是微服务系统中最常用的服务发现组件之一,非常简单易用.当客户端注册到Eureka后,客户端可以知道彼此的hostname和端口等,这样就可以建立连接,不需要配置. E ...

  6. Solon v2.0 大版本发布。提效率!降成本!

    一个高效的 Java 应用开发框架:更快.更小.更简单.不是 Spring,没有 Servlet,也无关 JavaEE:新兴独立的开放生态.主框架仅 0.1 MB. 150来个生态插件,覆盖各种不同的 ...

  7. http协议的请求方式

    协议 协议,就是通信双方去定义的一堆数据格式,并且共同遵守的标准. HTTP协议 HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件.图像.结果等,即是一个客户端和服务器端请求和应答的 ...

  8. 11月21日内容总结——多进程实现TCP服务端并发、互斥锁、线程及代码实现、GIL全局解释器锁、信号量、event事件、进程池和线程池、协程

    目录 一.多进程实现TCP服务端并发 二.互斥锁代码实操 1.互斥锁的概念 2.互斥锁的使用 3.死锁现象 4. 小结 三.线程理论 进程 线程 线程简介 为什么要使用多线程? 多线程概念 多进程的优 ...

  9. FAQ selenium无法click的一个案例分享(2)

    案例描述 https://www.healthsmart.com.hk/hs-home/#!/link/home 来着学员咨询 这个网页你手工打开的时候你会发现一直处于加载中,一定时间后才好. 我们的 ...

  10. myatbis的一个好的封装

    package com.pj.project4sp; import org.springframework.beans.factory.annotation.Autowired; import org ...