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

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

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

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

読み方

std::max
えすてぃーでぃー まっくす

概要

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

ヘッダファイル

#include <algorithm>

定義

template< class T > 
const T& max( const T& a, const T& b );
template< class T, class Compare >
const T& max( const T& a, const T& b, Compare comp );
 
// C++11
template< class T >
T max( std::initializer_list<T> ilist );
// C++11
template< class T, class Compare >
T max( std::initializer_list<T> ilist, Compare comp );

max1.cpp の例

ソースコード max1.cpp

3つものmaxでは、ラムダ式を使用しているため、C++11対応のコンパイラが必要です。

#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const* argv[])
{
        cout << max(1,999) << endl;
        cout << max('a','b') << endl;
        cout << max(
                        { "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  max1.cpp -o max1

実行例

% ./max1
999
b
hoge

関連項目