Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

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

返回最大的

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

初始化器列表(3)的版本返回列表中所有元素中最大的元素。如果它们多于1,则返回第一个。

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

这个函数模板(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)
}

☲  参数


a, b
比较的值.

comp
接受两个T类型的值作为参数,并返回可转换为bool类型的值的二元函数。 返回的值表明作为第一个参数传递的元素是否被认为小于第二个参数。
函数不能修改它的任何参数。
它可以是一个函数指针,也可以是一个函数对象。

il
一个初始化器列表对象。
这些对象是由初始化器列表声明器自动构造的。

T
应支持与operator<进行比较。
C++98: T应为可复制构造。
C++11: 对于(3),T应是可复制构造的。

☉  返回值



较大的值.

☣  示例



// max example
#include <iostream>     // std::cout
#include <algorithm>    // std::max

int 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;
}

输出:
max(1,2)==2
max(2,1)==2
max('a','z')==z
max(3.14,2.73)==3.14

✥ 复杂度



一个小于比较的元素的数量为线性((1)和(2)为常量)。

☂ 异常安全性



如果任何比较抛出,则抛出。
注意,无效的参数会导致未定义的行为。

🍄  另请参阅



min 返回最小的(函数模板)
max_element 返回范围内最大的元素(函数模板)

联系我们 免责声明 关于CandCplus 网站地图