「std::min」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「std::min とは、2つの値から小さい値を返す関数です。比較するための関数を指定することもできます。 '''読み方''' ;[[std::...」)
(相違点なし)

2013年12月28日 (土) 12:42時点における版

std::min とは、2つの値から小さい値を返す関数です。比較するための関数を指定することもできます。

読み方

std::min
えすてぃーでぃー みん

概要

std::maxの逆をする関数は、std::minです。

ヘッダファイル

#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('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
a
foo

関連項目