std::min
来自cppreference.com
![]() |
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
定义于头文件 <algorithm>
|
||
template< class T > const T& min( const T& a, const T& b ); |
(1) | |
template< class T, class Compare > const T& min( const T& a, const T& b, Compare comp ); |
(2) | |
template< class T > T min( std::initializer_list<T> ilist); |
(3) | (C++11 起) |
template< class T, class Compare > T min( std::initializer_list<T> ilist, Compare comp ); |
(4) | (C++11 起) |
返回最小的值初始化列表中的
ilist
.(1,3)版本使用operator<的值进行比较,(2,4)版本使用给定的比较函数
comp
目录 |
[编辑] 参数
a, b | - | |
ilist | - | |
cmp | - | 比较函数对象(即满足比较 (Compare ) 要求的对象),若 if a is less than b ,则返回 true 。比较函数的签名应等价于如下者: bool cmp(const Type1 &a, const Type2 &b); 签名不需要拥有 const & ,但函数对象必须不修改传递给它的对象。 |
类型要求 | ||
-T 必须满足 LessThanComparable 的要求。for the overloads (1) and (3)
| ||
-T 必须满足 CopyConstructible 的要求。for the overloads (3) and (4)
|
[编辑] 返回值
1-2)较小的
3-4) a
和b
。如果这两个值是相等的,返回a
.ilist
中的最小值。如果有多个值相当于最小,最左边的值返回.[编辑] 复杂度
1-2) 3-4)[编辑] 可能的实现
版本一 |
---|
template<class T> const T& min(const T& a, const T& b) { return (a < b) ? a : b; } |
版本二 |
template<class T, class Compare> const T& min(const T& a, const T& b, Compare comp) { return (comp(a, b)) ? a : b; } |
版本三 |
template<class T> T min( std::initializer_list<T> ilist) { return *std::min_element(ilist.begin(), ilist.end()); } |
版本四 |
template<class T, class Compare> T min(std::initializer_list<T> ilist, Compare comp) { return *std::min_element(ilist.begin(), ilist.end(), comp); } |
[编辑] 示例
运行此代码
输出:
smaller of 1 and 9999: 1 smaller of 'a' and 'b': a smaller of 3.5 and 2.5: 2.5
本节未完成 |
[编辑] 另请参阅
返回两个元素中的较大者 (函数模板) | |
(C++11) |
返回两个元素中的的较大者和较小者 (函数模板) |
返回区间内的最小元素 (函数模板) |