C++排序求最值函数的调用
c++对于vector等类型的数据处理,经常会涉及到排序,顺序,逆序,或者根据某一个每一个条件排序.今天来捋一捋
==> 实际上发现已经有英文的整理版本,附上链接
1.实现vector元素的顺序排列
// C++ program to sort a vector in non-decreasing
// order.
#include <bits/stdc++.h>
using namespace std;int main()
{vector<int> v{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };sort(v.begin(), v.end());cout << "Sorted \n";for (auto x : v)cout << x << " ";return 0;
}
2. 实现vector元素的逆序排列
// C++ program to sort a vector in non-increasing
// order.
#include <bits/stdc++.h>
using namespace std;int main()
{vector<int> v{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };sort(v.begin(), v.end(), greater<int>());cout << "Sorted \n";for (auto x : v)cout << x << " ";return 0;
}
template <class T> struct greater : binary_function <T,T,bool> {bool operator() (const T& x, const T& y) const {return x>y;}
};
其实,这就是一个标准库自带的函数模板,如果我们用less<int>作为第三个参数,那么就是顺序排列
3. 按照某一属性排列
对于一个对象,我们希望按照它的某一个属性进行排列,那要怎么实现呢?
其实根据第二个例子,就知道原理就是定义一个bool函数,设定比较的规则
"比较函数"的关键:
形参: 要比较的对象
返回值: bool
规则:
less==>true :ascending 升序排列
greater==>true: descending 降序排列
下面的代码: 我们要排列car这个对象,其中根据它的属性 position
struct也可以设置constuctor哦
/*************************************************************************> File Name: struct_sort.cpp> Author: > Mail: > Created Time: So 25 Jul 2021 20:31:53 CEST************************************************************************/
#include <algorithm>
#include <vector>
#include<iostream>
using namespace std;struct car{double speed;double position;car(double speed, double position):speed(speed),position(position){speed = speed;position = position;}};bool comparecar(car& car1,car& car2)
{return (car1.position<car2.position);//less =>ascending
}int main()
{vector<car> fleet{{1,3},{4,2},{3,5},{6,7},{2,9}};sort(fleet.begin(),fleet.end(),comparecar);for (auto x:fleet){cout<<x.position<<" "<<x.speed<<endl;}}
4. 反向遍历
用迭代器,我们也可以实现对于vector的反向遍历,比如
这就可以用rbegin和rend实现元素的反向遍历
5. 求最值
我们想求一个vector中的最大最小值, c++也提供了对应的函数
/*************************************************************************> File Name: getVecMin.cpp> Author: > Mail: > Created Time: Mo 26 Jul 2021 08:43:02 CEST************************************************************************/
#include <vector>
#include <algorithm>
#include<iostream>
using namespace std;int main()
{vector<int> array ={1,5,4,5,6,3,22,99};cout<<"Max "<<*max_element(array.begin(),array.end())<<endl;cout<<"Min "<<*min_element(array.begin(),array.end())<<endl;
}
C++排序求最值函数的调用相关推荐
- excel减法函数_发现EXCEL隐藏功能,SUMIFS函数居然可以多条件求差值看了不后悔...
在EXCEL中,SUMIFS函数是"多条件求和"函数,但是我们工作需要完成多条件求差,EXCEL里是没有"多条件求差值"函数的,所以我们可以逆向利用多条件求和函 ...
- 函数:无参无返回值函数的使用
1.定义格式 函数构成代码执行的逻辑结构,在go语言中,函数的基本组成为:关键字func.函数名.参数列表.返回值.函数体和返回语句 go语言中函数定义的格式如下: func FuncName(/参数 ...
- 自定义函数fac1用递推方法求n!,自定义函数fac2用递归方法求n!,主函数中输入整数n(0≦n≦10)后,分别调用函数fac1和函数fac2求n!,最后输出调用的结果值进行对比。
自定义函数fac1用递推方法求n!,自定义函数fac2用递归方法求n!,主函数中输入整数n(0≦n≦10)后,分别调用函数fac1和函数fac2求n!,最后输出调用的结果值进行对比. 参考运行截图: ...
- 《spark技术应用》课程期末考试大作业报告,使用eclipse完成求top值、文件排序、二次排序三个程序的个性化开发。
目录 一.选题的目的及要求... 4 二.设计思路... 4 三.主要内容及关键技术.. 5 四.制作步骤... 5 1.准备工作... 5 1.1在VMware中安装一台Ubuntu64位系 ...
- 求带便函数权值的最短路径
function [distance,path]=zuiduanlujing(D,start1,terminal); %求带便函数权值的最短路径 %嵌套调用函数 [B,F]=datainfun; ...
- Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[字典] 目录 3.函数 函数的定义和调用 函数定义 PEP8规范 ...
- mysql编写函数 求1 n 偶数之和,编写求1 2 3 - n的函数.在main函数中调用该函数
输入两个正整数m,n,编写求阶乘的函数,计算m!/(n!*(m-n)!). C语言函数解答,谢谢. #includelongfactorial(intm,intn){longsum=1,sum1=1; ...
- c语言学习-自定义函数并调用求1-100的累计和
自定义函数并调用求1-100的累计和 程序流程图: 代码: #include<stdio.h> int sum(int m ) {int f; long s=0; for(f=1;f< ...
- c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...
点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...
最新文章
- c语言字符串机考题,2016全国计算机二级《C语言》机考试题及答案
- BZOJ1901Zju2112 Dynamic Rankings——树状数组套主席树
- AI 经典书单 | 人工智能学习该读哪些书
- 数据库设计中,多对多关系使用使用逗号分割关联讨论
- xcode 4.3 调试的时候显示汇编,怎么办
- 如何处理VMware启动虚拟机时的错误信息Failed to lock the file
- 中livechart显示大数据_Servlet中利用jdbc加载显示数据
- 洛谷 P1067 多项式输出
- Python机器学习 集成算法实例
- react native camera
- Python 找完美数
- 计算机高中期末总结作文,高中学期总结作文
- 人文视野中的生态学题库
- bat命令修改文件夹的后缀名
- Recovering a NOARCHIVELOG Database with Incremental Backups
- 【洋葱软件库-洋葱分享库】
- 解决Vs2015+Qt+obs studio配置软件环境问题汇总
- PHP导出Excel文件时导出列的数字长度太长时显示不完整或者乱码显示
- Stage 222222 —— 逆向工程拆除“二进制炸弹”程序
- maven-springmvc工程