C++のmin関数とmax関数

C++ 標準ライブラリのヘッダー ファイル <algorithm> に含まれており、min および max マクロはヘッダー ファイル <windows.h> に定義されています。<windows.h> がインクルードされているときに <algorithm> がインクルードされている場合、関数は実行されません利用できるようになります。

<windows.h> は、min 関数を置き換える _cpp_min などの関数を提供します。

C++11 標準: <algorithm> の min 関数のプロトタイプ

デフォルト (1)
template <class T> const T& min (const T& a, const T& b);
カスタム (2)
template <class T, class Compare> 
  const T& min (const T& a, const T& b, Compare comp);
初期化子リスト (3)
テンプレート <class T> T min (initializer_list<T> il); 
template <class T, class Compare> 
  T min (initializer_list<T> il, Compare comp);

最小のものを返します
a  と  b の最小のものを返します  両方が等しい場合は、  a  が返されます。

初期化子リストのバージョン  (3) は 、リスト内のすべての要素のうち最小のものを返します。複数ある場合は最初のものを返します。

この関数は  operator<  (または、  指定されている場合は comp ) を使用して値を比較します。
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;
}
安定した_sort、max関数はminと同じです

おすすめ

転載: blog.csdn.net/u013349653/article/details/51136945