c++ 求数组最大最小值函数的实现

目录
  • 求数组元素最大最小值函数
  • c++中min和max函数

求数组元素最大最小值函数

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[5]={1,2,3,0,-20};
cout<<*max_element(a,a+5)<<endl;
cout<<*max_element(a,a+5)<<endl;
return 0;
}

也可以通过这种方式,修改最大值或最小值

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[5]={1,2,3,0,-2},m=10;
*min_element(a,a+5) += *max_element(a,a+5);//把最小元素和最大元素的和 赋给当前最小元素
cout<<*max_element(a,a+5);
return 0;
}

c++中min和max函数

包含在c++标准库中头文件<algorithm>中,在头文件<windows.h>中定义了min,max的宏,若在包含<algorithm>的同时包含<windows.h>会导致函数无法使用。

<windows.h>提供了_cpp_min等函数来代替min函数的功能。

C++11标准:<algorithm>中min函数的原型

default (1) template <class T> const T& min (const T& a, const T& b);
custom (2) template <class T, class Compare>
  const T& min (const T& a, const T& b, Compare comp);
initializer list (3) template <class T> T min (initializer_list<T> il);
template <class T, class Compare>
  T min (initializer_list<T> il, Compare comp);

Return the smallest

Returns the smallest of  a and  b. If both are equivalent,  a is returned.

The versions for  initializer lists (3) return the smallest of all the elements in the list. Returning the first of them if these are more than one.

The function uses  operator< (or  comp, if provided) to compare the values.

eg:custom2<pre style="margin-top: 0px; margin-bottom: 0px; color: rgb(0, 128, 0);">template <class T, class Compare>
  const T& min (const T& a, const T& b, Compare comp);
#include<iostream>
#include<algorithm>
using namespace std;
struct var {
    char *name;
    int key;
    var(char *a,int k):name(a),key(k){}
};
bool comp(const var& l, const var& r) {
    return l.key < r.key;
}
int main() {
    var v1("var1", 2);
    var v2("var2", 3);
    cout << std::min(v1, v2,comp).name << endl;
    return 0;
}

stable_sort,max函数同min

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C++中求旋转数组中的最小数字(经典面试题)

    面试题:旋转数组的最小数字 题目:把一个数组的最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增数组的旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. 算法: (1)当输入的旋转数组非法时:处理! (2)当输入的旋转数组正常时,index1 = 0:index2=length-1: a:如果arry[index1] <arry[index2]时:说明数组为原数组,并没有进行旋转:    b:如果arry[ind

  • C++实现从数组中同时取出最大最小元素算法示例

    本文实例讲述了C++实现从数组中同时取出最大最小元素的方法.分享给大家供大家参考,具体如下: 算法思想:先相邻两个两个比较,较大的放入数组max[],较小的放入数组min[],然后从max[]数组求出最大,min[]数组求出最小即可. 比较n+[(n+1)/2] =1.5n次 #include <iostream> #define n 11 #define m ((n+1)/2) using namespace std; void main(void) { int num[] = {11,2,

  • 带你了解C++的数组与函数

    目录 数组作为函数的参数 数组参数的传递机制 数组作为函数的参数 传递首地址. A进行修改,a同时也会进行修改. 数组参数的传递机制

  • C++实现数组中元素组合出最大值

    目录 数组中元素组合出最大值 如题:这可以算是一个算法类 数组或vector求最大值最小值 1.求数组的最大值或最小值 2.求数组最大值最小值对应的下标 数组中元素组合出最大值 如题:这可以算是一个算法类 class Solution { public: string largestNumber(vector<int>& nums) { string res; sort(nums.begin(), nums.end(), [](const int& x, const int&a

  • c++ 求数组最大最小值函数的实现

    目录 求数组元素最大最小值函数 c++中min和max函数 求数组元素最大最小值函数 #include<iostream> #include<algorithm> using namespace std; int main() { int a[5]={1,2,3,0,-20}; cout<<*max_element(a,a+5)<<endl; cout<<*max_element(a,a+5)<<endl; return 0; } 也

  • 求数组最大最小值方法适用于任何数组

    今天为大家分享一个方法,这个方法是针对数组的.在日常工作中,我们在遇到数组的问题时候也许会很头疼.特别是让我们从奇形怪状的数组中寻找出最大最小值.之前虽然介绍过一种求数组最大最小值的方法,但那个方法只是用于数组中都是数字的. 接下来,我介绍的方法,适用于任何数组,这话方法都会把数组中的数值挑出来,比一比大小. Html代码: 复制代码 代码如下: <div id="box"> <b>['1200px', 300, 'abc', 4, 90, [], '12.56

  • python topk()函数求最大和最小值实例

    函数介绍 a.topk()求a中的最大值或最小值,返回两个值,一个是a中的值(最大或最小),一个是这个值的索引. 代码示例 >>> import torch >>> a=torch.randn((3,5)) >>> a tensor([[-0.4790, -0.6308, 0.2370, 0.0380, -0.0579], [-0.6712, -3.5483, -0.2370, -0.8658, 0.4145], [-1.4126, -0.8786,

  • PHP操作数组的一些函数整理介绍

    在数组中搜索一个特定值,如果找到返回TRUE否则返回FALSE boolean in_array(mixed needle,array haystack[,boolean strict]) 在数组中找到一个指定的健,如果找到返回TRUE否则返回FALSE boolean array_eky_exists(mixed key,array array) 在数组中搜索一个特定值,如果找到返回TRUE否则返回FALSE boolean array_search(mixed needle,array ha

  • C#求数组中元素全排列的方法

    本文实例讲述了C#求数组中元素全排列的方法.分享给大家供大家参考.具体如下: 1.算法描述 全排列的第一项是该数组的升序排列,最后一项是该数组的降序排列.本文中用到的了一个函数FindNextArray:从升序排列开始,不断使用函数FindNextArray,可以遍历全部排列,最终到达数组中元素的降序排列. FindNextArray函数的实现思路: 设有数组array为原数组的一个排列 1)找出数组的最大值 2)从后向前找:找到第一组array[i]>array[i-1]的数,以i位置为sig

  • c++将数组名作为函数参数对数组元素进行相应的运算

    用数组名做函数参数与用数组元素作实参有几点不同: (1)用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的.因此,并不要求函数的形参也是下标变量.换句话说,对数组元素的处理是按普通变量对待的.用数组名作函数参数时,则要求形参和相应的实参都必须是类型相同的数组,都必须有明确的数组说明.当形参和实参两者类型不一致时,将会发生错误. (2)用普通变量或下标变量作函数参数时,形参变量和实参变量都是由编译系统分配的两个不同的内存单元.

  • C++实现LeetCode(162.求数组的局部峰值)

    [LeetCode] 162.Find Peak Element 求数组的局部峰值 A peak element is an element that is greater than its neighbors. Given an input array nums, where nums[i] ≠ nums[i+1], find a peak element and return its index. The array may contain multiple peaks, in that c

  • C++数组放在main函数内外的区别

    目录 思路 错误代码 正确代码 问题分析 总结 先来看一道小题,第十届蓝桥杯省赛C++/B组填空题第三题 试题 C:数列求值 本题总分:10 分 [问题描述] 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和.求第 20190324 项的最后 4 位数字. [答案提交] 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一 个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分. 思路 显然,

  • 一文掌握JavaScript数组常用工具函数总结

    目录 一. 实现Array.isArray 二. 将类数组转换为数组 1. 借用数组的方法进行转换 2. es6的方式转换 三. 判断是否为数组 四. 数组方法实现 1.forEach 2. filter 3. every 4. some 5. findIndex 6. Reduce 五. 实现数组扁平化 1. 普通递归+concat 2. reduce+concat 3. while+concat 4. toString+split 5. flat 6. 正则 六. 去重 1. 利用 ES6 

  • java 求解二维数组列最小值

    java 求解二维数组列最小值 比较二维数组列最小值,组成一个新数组返回. 实现核心算法,不需要使用IO 输入:{{5,6,1,16},{7,3,9}} 输出:{1,3} import java.util.Arrays; public class Col { public static int[] getColMin(int a[][]) { int[] res = new int[a.length]; for (int i = 0; i < a.length; i++) { int[] s =

随机推荐