「std::min」の版間の差分
提供: C++入門
(ページの作成:「std::min とは、2つの値から小さい値を返す関数です。比較するための関数を指定することもできます。 '''読み方''' ;[[std::...」) |
(→概要) |
||
(同じ利用者による、間の3版が非表示) | |||
行7: | 行7: | ||
== 概要 == | == 概要 == | ||
[[std::max]]の逆をする関数は、[[std::min]]です。 | [[std::max]]の逆をする関数は、[[std::min]]です。 | ||
+ | |||
+ | [[C++11]]から複数の引数を受け付けられるようになりました。 | ||
+ | <syntaxhighlight lang="cpp"> | ||
+ | cout << min(1,2) << endl; // この方式は、2つまで。 | ||
+ | cout << min({1,2,3}) << endl; // この方式では、複数が指定できます。 | ||
+ | </syntaxhighlight> | ||
+ | |||
== ヘッダファイル == | == ヘッダファイル == | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
行25: | 行32: | ||
T min( std::initializer_list<T> ilist, Compare comp ); | T min( std::initializer_list<T> ilist, Compare comp ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
== min1.cpp の例 == | == min1.cpp の例 == | ||
=== ソースコード min1.cpp === | === ソースコード min1.cpp === | ||
行36: | 行44: | ||
{ | { | ||
cout << min(1,999) << endl; | cout << min(1,999) << endl; | ||
+ | cout << min({1,2,3}) << endl; | ||
cout << min('a','b') << endl; | cout << min('a','b') << endl; | ||
cout << min( { "foo", "bar", "hoge" }, | cout << min( { "foo", "bar", "hoge" }, | ||
行55: | 行64: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
% ./min1 | % ./min1 | ||
+ | 1 | ||
1 | 1 | ||
a | a |
2014年1月3日 (金) 23:40時点における最新版
std::min とは、2つの値から小さい値を返す関数です。比較するための関数を指定することもできます。
読み方
- std::min
- えすてぃーでぃー みん
概要
std::maxの逆をする関数は、std::minです。
C++11から複数の引数を受け付けられるようになりました。
cout << min(1,2) << endl; // この方式は、2つまで。 cout << min({1,2,3}) << endl; // この方式では、複数が指定できます。
ヘッダファイル
#include <algorithm>
定義
template< class T > const T& min( const T& a, const T& b ); template< class T, class Compare > const T& min( const T& a, const T& b, Compare comp ); // C++11 template< class T > T min( std::initializer_list<T> ilist ); // C++11 template< class T, class Compare > T min( std::initializer_list<T> ilist, Compare comp );
min1.cpp の例
ソースコード min1.cpp
3つ目の比較では、ラムダ式を使用しているため、C++11に対応したコンパイラが必要です。
#include <algorithm> #include <iostream> #include <string> using namespace std; int main(int argc, char const* argv[]) { cout << min(1,999) << endl; cout << min({1,2,3}) << endl; cout << min('a','b') << endl; cout << min( { "foo", "bar", "hoge" }, [](const string& s1, const string& s2) { return s1.size() < s2.size(); } ) << endl; return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 min1.cpp -o min1
実行例
% ./min1 1 1 a foo
関連項目
- std::max
- std::min
- std::minmax (C++11)