C++之max和max_element

Stella981
• 阅读 669

C++之max和max_element

std::max()

Returns the greater of a and b, or the values in initializer list ilist 。it can use operator< to compare the value, or use the given comparison function comp.

#include <algorithm>
#include <iostream>
#include <string>
 
int main()
{
    std::cout << "larger of 1 and 9999: " << std::max(1, 9999) << '\n'
              << "larger of 'a', and 'b': " << std::max('a', 'b') << '\n'
              << "longest of \"foo\", \"bar\", and \"hello\": " <<
                  std::max( { "foo", "bar", "hello" },
                            [](const std::string& s1, const std::string& s2) {
                                 return s1.size() < s2.size();
                             }) << '\n';
}

output

larger of 1 and 9999: 9999
larger of 'a', and 'b': b
longest of "foo", "bar", and "hello": hello

std::max_element()

Finds the greatest element in the range [first, last). it can use operator< to compare the value, or use the given comparison function comp.

#include <algorithm>
#include <iostream>
#include <vector>
#include <cmath>
 
static bool abs_compare(int a, int b)
{
    return (std::abs(a) < std::abs(b));
}
 
int main()
{
    std::vector<int> v{ 3, 1, -14, 1, 5, 9 }; 
    std::vector<int>::iterator result;
 
    result = std::max_element(v.begin(), v.end());
    std::cout << "max element at: " << std::distance(v.begin(), result) << '\n';
 
    result = std::max_element(v.begin(), v.end(), abs_compare);
    std::cout << "max element (absolute) at: " << std::distance(v.begin(), result);
}

output

max element at: 5
max element (absolute) at: 2

同理:min 和min_element

  • 参考

https://en.cppreference.com/w/cpp/algorithm/max

https://en.cppreference.com/w/cpp/algorithm/max_element

点赞
收藏
评论区
推荐文章
pid_max的分析和修改
pid\max内核源码处理分析以linux3.2.6为例子分析init/main.c:asmlinkagevoidinitstartkernel(void)kernel/pid.c:voidinitpidmapinit(void)voidinitpidmapinit(void)/bumpdefaultandmi
Easter79 Easter79
3年前
sqlserver根据条件生成插入语句
ALTERproc\dbo\.\proc\_insert\(@tablenamevarchar(256),@wherevarchar(max))asbeginsetnocountondeclare@sqlstrvarchar(MAX)declare@sqlstr1varchar(MAX)dec
Wesley13 Wesley13
3年前
oracle中的greatest 函数和 least函数
oracle中的greatest函数和least函数原文地址:https://blog.csdn.net/sinat\_32023305/article/details/78778596greatest(max(one),max(two),max(three))求多列的最大
Wesley13 Wesley13
3年前
udp之关于linux udp收发包缓冲区大小
1、修订单个socket的缓冲区大小:通过setsockopt使用SO\_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem\_max进行对比校验,但是如果设置的大小超过rmem\_max的话,则超过rmem\_max的部分不会生效;2、修订linux系统udp缓冲区大小:通过rmem\_max来设置系统中udp缓存的上限,该值可通过如下方
Wesley13 Wesley13
3年前
mysql简单常用语句汇总
1\.常用函数uuid和时间戳SELECTUUID(),UNIX_TIMESTAMP();将时间戳转为日期格式FROM_UNIXTIME(mw.created_at,'%Y%m%d%H:%i:%s')设置参数select@m_no:max(m_no)fromvc_m;set@m
Stella981 Stella981
3年前
Flink 系例 之 MaxBy
maxBy聚合:获取一组数据流算子中最大的记录行(和max的区别,max是返回计算字段的最大值)示例环境java.version:1.8.xflink.version:1.11.1 示例数据源(项目码云下载)Flink系例之搭建开发环境与数据(https://my.oschina.net/u/437309
Stella981 Stella981
3年前
Javascript获取数组中最大和最小值方法
1.使用Math中的max/min方法vararr22,13,6,55,30;varmaxMath.max.apply(null,arr);varminMath.min.apply(null,arr);console.log(max,min)//5
Wesley13 Wesley13
3年前
MYSQL用户连续登录天数
selectuid,max(days)incessancy_days,min(ot)start_date,max(ot)end_datefrom(selectuid,@cont_day:(
Stella981 Stella981
3年前
Golang面试题解析(三)
21.编译执行下面代码会出现什么?packagemainvar(size:1024max_sizesize2)funcmain(){println(size,max_size)}解析
小万哥 小万哥
7个月前
C++ 数学函数、头文件及布尔类型详解
C数学C有许多函数可以让您在数字上执行数学任务。最大值和最小值max(x,y)函数可用于找到x和y的最大值:示例cppcout<<max(5,10);而min(x,y)函数可用于找到x和y的最小值:示例cppcout<<min(5,10);C头