第93章 min_element, max_elementアルゴリズム関数を使う


名前を見ただけですぐにその働きがわかる関数です。



template
   ForwardIterator min_element(
      ForwardIterator _First, 
      ForwardIterator _Last
   );
指定した範囲の要素の最小値のアドレスを返します。
template inline
   InputIterator max_element(
      InputIterator First,
      InputIterator Last,
   )
これは、最大値ですね。

では、簡単なサンプルを見てみましょう。

// minmax.cpp

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    vector<int> v;
    int n, i, max, min;

    while (1) {
        cout << "整数値入力(0で終了)--";
        cin >> n;
        if (n == 0)
            break;
        v.push_back(n);
    }
    for (i = 0; i < (int)v.size(); i++)
        cout << v[i] << endl;

    min = *min_element(v.begin(), v.end());
    max = *max_element(v.begin(), v.end());

    cout << "入力された最小値は" << min << "です" << endl;
    cout << "入力された最大値は" << max << "です" << endl;

    return 0;
}

v.end()は、最後の要素の次の要素を指す反復子を返している点に注意してください。

普通の配列でもこの関数は使用可能ですが、特に2番目の引数に気を付ける必要があります。

さて、min_elementやmax_element関数には、3番目の引数として 比較関数のアドレスを指定することもできます。これで特殊な比較もできるわけです。




[C++Index] [総合Index] [Previous Chapter] [Next Chapter]

Update Jul/25/2005 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。