一、min

头文件algorithm

【C++ 98】

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);

【C++ 11】

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);

【C++ 14】

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

返回最小的

返回a和b中的最小值。 如果两者都是等价的,则返回a。

初始化列表(3)的版本返回列表中所有元素中最小的元素。 如果这些不止一个,则返回第一个。

该函数使用operator <(或comp,如果提供)来比较值。

此函数模板(C ++ 98)的行为等效于:

template <class T> const T& min (const T& a, const T& b) {return !(b<a)?a:b;     // or: return !comp(b,a)?a:b; for version (2)
}

参数

  1. a,b
    要比较的值。
  2. comp
    二进制函数,它接受两个类型为T的值作为参数,并返回一个可转换为bool的值。 返回的值指示作为第一个参数传递的元素是否小于第二个参数。该函数不得修改其任何参数。这可以是函数指针或函数对象。
  3. il
    initializer_list对象。这些对象是从初始化列表声明符自动构造的。

T应支持用operator <进行比较。:
【C++ 98】T应是可复制的。
【C++ 11】对于(3),T应是可复制的。

返回值

作为参数传递的值中较小的值。

// min example
#include <iostream>     // std::cout
#include <algorithm>    // std::minint main () {std::cout << "min(1,2)==" << std::min(1,2) << '\n';std::cout << "min(2,1)==" << std::min(2,1) << '\n';std::cout << "min('a','z')==" << std::min('a','z') << '\n';std::cout << "min(3.14,2.72)==" << std::min(3.14,2.72) << '\n';return 0;
}

二、max

头文件algorithm

【C++ 98】

default (1)
template <class T> const T& max (const T& a, const T& b);
custom (2)
template <class T, class Compare>const T& max (const T& a, const T& b, Compare comp);

【C++ 11】

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

【C++ 14】

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

返回最大的

返回a和b中的最大值。 如果两者都是等价的,则返回a。

初始化列表(3)的版本返回列表中所有元素中最大的一个。 如果这些不止一个,则返回第一个。

该函数使用operator <(或comp,如果提供)来比较值。

此函数模板(C ++ 98)的行为等效于:

template <class T> const T& max (const T& a, const T& b) {return (a<b)?b:a;     // or: return comp(a,b)?b:a; for version (2)
}

参数

  1. a,b
    要比较的值。
  2. comp
    二进制函数,它接受两个类型为T的值作为参数,并返回一个可转换为bool的值。 返回的值指示作为第一个参数传递的元素是否小于第二个参数。
    该函数不得修改其任何参数。这可以是函数指针或函数对象。
  3. il
    initializer_list对象。
    这些对象是从初始化列表声明符自动构造的。

T应支持用operator <进行比较:
【C++ 98】T应是可复制的。
【C++ 11】对于(3),T应是可复制的。

返回值

作为参数传递的最大值。

// max example
#include <iostream>     // std::cout
#include <algorithm>    // std::maxint main () {std::cout << "max(1,2)==" << std::max(1,2) << '\n';std::cout << "max(2,1)==" << std::max(2,1) << '\n';std::cout << "max('a','z')==" << std::max('a','z') << '\n';std::cout << "max(3.14,2.73)==" << std::max(3.14,2.73) << '\n';return 0;
}

三、minmax

头文件algorithm

【C++ 11】

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

【C++ 14】

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

返回最小和最大的元素

返回一对最小的a和b作为第一个元素,最大的作为第二个元素。 如果两者都是等价的,则函数返回make_pair(a,b)。

initializer lists (3)的版本返回一对,列表中所有元素中的最小元素作为第一个元素(第一个元素,如果有多个元素),最大的元素作为第二个元素(最后一个,如果有的话,最后一个,如果 不止一个)。

该函数使用operator <(或comp,如果提供)来比较值。

此函数模板(version (1))的行为等效于:

template <class T> pair <const T&,const T&> minmax (const T& a, const T& b) {return (b<a) ? std::make_pair(b,a) : std::make_pair(a,b);
}

参数

  1. a,b
    要比较的值。
  2. comp
    二进制函数,它接受两个类型为T的值作为参数,并返回一个可转换为bool的值。 返回的值指示作为第一个参数传递的元素是否小于第二个参数。
    该函数不得修改其任何参数。这可以是函数指针或函数对象。
  3. il
    initializer_list对象。
    这些对象是从初始化列表声明符自动构造的。

T应支持用operator <进行比较。对于(3),T应是可复制的。

返回值

作为参数传递的值中较小的值。

// minmax example
#include <iostream>     // std::cout
#include <algorithm>    // std::minmaxint main () {auto result = std::minmax({1,2,3,4,5});std::cout << "minmax({1,2,3,4,5}): ";std::cout << result.first << ' ' << result.second << '\n';return 0;
}

四、min_element

头文件algorithm

default (1)
template <class ForwardIterator>ForwardIterator min_element (ForwardIterator first, ForwardIterator last);
custom (2)
template <class ForwardIterator, class Compare>ForwardIterator min_element (ForwardIterator first, ForwardIterator last, Compare comp);

返回范围内的最小元素

返回指向范围[first,last]中具有最小值的元素的迭代器。

比较是使用operator <作为第一个版本,或comp作为第二个版本; 如果没有其他元素比它少,则元素是最小的。 如果多个元素满足此条件,则迭代器返回指向第一个这样的元素。

此函数模板的行为等效于:

template <class ForwardIterator>ForwardIterator min_element ( ForwardIterator first, ForwardIterator last )
{if (first==last) return last;ForwardIterator smallest = first;while (++first!=last)if (*first<*smallest)    // or: if (comp(*first,*smallest)) for version (2)smallest=first;return smallest;
}

参数

  1. fisrt,last
    将迭代器输入到要比较的序列的初始和最终位置。 使用的范围是[first,last),它包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
  2. comp
    二进制函数,接受范围中的两个元素作为参数,并返回可转换为bool的值。 返回的值指示作为第一个参数传递的元素是否小于第二个参数。
    该函数不得修改其任何参数。这可以是函数指针或函数对象。

返回值

迭代器到范围中的最小值,如果范围为空则为last。

// min_element/max_element example
#include <iostream>     // std::cout
#include <algorithm>    // std::min_element, std::max_elementbool myfn(int i, int j) { return i<j; }struct myclass {bool operator() (int i,int j) { return i<j; }
} myobj;int main () {int myints[] = {3,7,2,5,6,4,9};// using default comparison:std::cout << "The smallest element is " << *std::min_element(myints,myints+7) << '\n';std::cout << "The largest element is "  << *std::max_element(myints,myints+7) << '\n';// using function myfn as comp:std::cout << "The smallest element is " << *std::min_element(myints,myints+7,myfn) << '\n';std::cout << "The largest element is "  << *std::max_element(myints,myints+7,myfn) << '\n';// using object myobj as comp:std::cout << "The smallest element is " << *std::min_element(myints,myints+7,myobj) << '\n';std::cout << "The largest element is "  << *std::max_element(myints,myints+7,myobj) << '\n';return 0;
}

五、max_element

头文件algorithm

default (1)
template <class ForwardIterator>ForwardIterator max_element (ForwardIterator first, ForwardIterator last);
custom (2)
template <class ForwardIterator, class Compare>ForwardIterator max_element (ForwardIterator first, ForwardIterator last,Compare comp);

返回范围内的最大元素

返回指向范围[first,last]中具有最大值的元素的迭代器。

比较是使用operator <作为第一个版本,或comp作为第二个版本; 如果没有其他元素没有比它少,则元素是最大的。 如果多个元素满足此条件,则迭代器返回指向第一个这样的元素。

此函数模板的行为等效于:

template <class ForwardIterator>ForwardIterator max_element ( ForwardIterator first, ForwardIterator last )
{if (first==last) return last;ForwardIterator largest = first;while (++first!=last)if (*largest<*first)    // or: if (comp(*largest,*first)) for version (2)largest=first;return largest;
}

参数

  1. first,last
    将迭代器输入到要比较的序列的初始和最终位置。 使用的范围是[first,last),它包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
  2. comp
    二进制函数,接受范围中的两个元素作为参数,并返回可转换为bool的值。 返回的值指示作为第一个参数传递的元素是否小于第二个参数。
    该函数不得修改其任何参数。这可以是函数指针或函数对象。

返回值

迭代器到范围中的最大值,如果范围为空则为last。

// min_element/max_element example
#include <iostream>     // std::cout
#include <algorithm>    // std::min_element, std::max_elementbool myfn(int i, int j) { return i<j; }struct myclass {bool operator() (int i,int j) { return i<j; }
} myobj;int main () {int myints[] = {3,7,2,5,6,4,9};// using default comparison:std::cout << "The smallest element is " << *std::min_element(myints,myints+7) << '\n';std::cout << "The largest element is "  << *std::max_element(myints,myints+7) << '\n';// using function myfn as comp:std::cout << "The smallest element is " << *std::min_element(myints,myints+7,myfn) << '\n';std::cout << "The largest element is "  << *std::max_element(myints,myints+7,myfn) << '\n';// using object myobj as comp:std::cout << "The smallest element is " << *std::min_element(myints,myints+7,myobj) << '\n';std::cout << "The largest element is "  << *std::max_element(myints,myints+7,myobj) << '\n';return 0;
}

六、minmax_element

头文件algorithm

default (1)
template <class ForwardIterator>pair<ForwardIterator,ForwardIterator>minmax_element (ForwardIterator first, ForwardIterator last);
custom (2)
template <class ForwardIterator, class Compare>pair<ForwardIterator,ForwardIterator>minmax_element (ForwardIterator first, ForwardIterator last, Compare comp);

返回范围内的最小和最大元素

返回一个迭代器对,该迭代器指向范围[first,last]中最小值为第一个元素的元素,最大值为第二个元素。

使用运算符<对于第一个版本执行比较,或对于第二个版本执行comp。

如果多个等效元素具有最小值,则第一个迭代器指向第一个这样的元素。

如果多个等效元素具有最大值,则第二个迭代器指向最后一个这样的元素。

参数

  1. first,last
    将迭代器输入到要比较的序列的初始和最终位置。 使用的范围是[first,last),它包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
  2. comp
    二进制函数,接受范围中的两个元素作为参数,并返回可转换为bool的值。 返回的值指示作为第一个参数传递的元素是否小于第二个参数。
    该函数不得修改其任何参数。这可以是函数指针或函数对象。

返回值

具有迭代器的对,其指向具有[first,last]范围中的最小值的元素作为第一元素,并且最大值作为第二元素。

pair是中定义的类模板。

// minmax_element
#include <iostream>     // std::cout
#include <algorithm>    // std::minmax_element
#include <array>        // std::arrayint main () {std::array<int,7> foo {3,7,2,9,5,8,6};auto result = std::minmax_element (foo.begin(),foo.end());// print result:std::cout << "min is " << *result.first;std::cout << ", at position " << (result.first-foo.begin()) << '\n';std::cout << "max is " << *result.second;std::cout << ", at position " << (result.second-foo.begin()) << '\n';return 0;
}

C++最小/最大(min;max;minmax;min_element;max_element;minmax_element)相关推荐

  1. Magento: 单产品(product)或者当前类别(category)最大和最小价格 Min/Max Product Price in a Category...

    1. 当前类别最大最小价格: $minPrice = Mage::getModel('catalog/product')->getCollection()->addStoreFilter( ...

  2. OpenLayers官方示例详解七之图层的最小、最大分辨率(Layer Min/Max Resolution)

    目录 一.示例简介 二.代码详解 一.示例简介 这个示例加载了一个MapBox的瓦片图层和一个Open Street Map的瓦片图层,同时使用最小.最大分辨率限制图层加载的比例级别. 使用鼠标放大两 ...

  3. c++中求字符串数组的min/max

    1.函数:(作用:返回容器中最小值和最大值.) min_element() max_element max_element(first,end,cmp);其中cmp为可选择参数! 第三个参数cmp可写 ...

  4. Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT

    Oracle 分析函数--SUM,AVG,MIN,MAX,COUNT SUM 功能描述:该函数计算组中表达式的累积和. SAMPLE :下例计算同一经理下员工的薪水累积值 MIN 功能描述:在一个组中 ...

  5. 13,12_基本运算,add/minus/multiply/divide,矩阵相乘mm,matmul,pow/sqrt/rsqrt,exp/log近似值,统计属性,mean,sum,min,max

    1.12.基本运算 1.12.1.add/minus/multiply/divide 1.12.2.矩阵相乘mm,matmul 1.12.3.pow/sqrt/rsqrt 1.12.4.exp/log ...

  6. LINQ to SQL语句之 Count/Sum/Min/Max/Avg

    Count/Sum/Min/Max/Avg操作符 适用场景:统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数. Count 说明:返回集合中的元素个数,返回INT类型:不延迟.生成SQ ...

  7. 10.matlab中sort , min/max以及ceil 函数

    1.sort  排序 2.min/max 求最大最小值    3.ceil----向上取整(不进行四舍五入)

  8. P3175 [HAOI2015]按位或(Min - Max容斥,FMT,概率期望,全网最清晰的题解!)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P3175 Prob ...

  9. splunk的统计分析功能——特定字段的统计功能包括取值分布(+topK,min/max/平均值)...

    特定字段的统计功能--取值分布,topK,min/max/平均值 例如: date_second 60 值, 100% 的事件 时段平均值 时段最大值 时段最小值 上限值 时段上限值 罕见值 具有此字 ...

  10. [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析

    众所周知,Python有许多内置函数(例如min(),max(),sum()),Numpy也有自己的内置函数(np.min(),np.max(),np.sum()).由于Numpy的函数是在编译码中执 ...

最新文章

  1. Uber最新开源Manifold,助力机器学习开发者的可视化与调试需求
  2. poj2449(k短路算法)
  3. 卷积神经网络CNNs的理解与体会
  4. Codeforces Round #327 (Div. 2) B Rebranding
  5. c语言双引号和单引号的区别
  6. 使用NavigationUI更新UI组件
  7. 论文浅尝 - COLING2020 | 一种用于跨语言实体对齐的上下文对齐强化跨图谱注意力网络...
  8. python字典保存为excel_python将字典列表导出为Excel文件的方法
  9. (转自孟岩的CSDN)理解矩阵
  10. 记录下 k8s (1.14.2)使用kubeadm方式搭建和rancher搭建需要的镜像清单
  11. java编程手册_Java编程手册
  12. sql server 2005 Express 下载
  13. 教你安装ps,pr,ae,ai等Adobe软件,办公必备
  14. 华泰证券:“融券通”是何阳谋?
  15. 前端面试题,速看webP,把握住网页提速小细节!亲测可用!
  16. mysql 注册驱动_找不到DriverClassName=org.gjt.mm.mysql.Driver的已注册驱动程序
  17. 为何农历10月1号要祭祖上坟?原来有这么多讲究,你知道吗?
  18. 入门级,Hadoop详情教程(一)
  19. Android 逆向基础
  20. python 学习爬取链家武汉二手房市场成交记录

热门文章

  1. Java开发常用在线工具
  2. [NFC] 读羊城通卡片信息
  3. 龙ol服务器维护补偿boss,《龙OL》12月17日更新公告
  4. 科普小时代---笔记本连接无线受限
  5. 快消巨头与“饿了么”的数字革命
  6. 【读书】2019年阅读记录
  7. linux 部署 程序,Linux 部署配置WEB APP
  8. 吴乙己的数仓指南_2维度建模核心思想
  9. java飞机_使用java写出飞机小游戏
  10. c语言足球管理系统,如足球一般优美的C语言