三浦ノート

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

C++ で2次元配列の最大値を求める.

C++ で1次元配列の最大値を求めるならばfor文を使わずに max_element を使うと楽です.

2次元配列の最大値を一度に求めるSTL関数は私は見つけられませんでしたが,各行に対して max_element を繰り返せばいいでしょう.

max_element のおかげで for を書く手間が一回だけ減らすことができてうれしいですね.

同様に最小値を求めたいときは, min_element を使えばいいです.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<vector<int>> M = 
    {{1, 42, 56, 94, 0, -3, 28},
     {4, 53, -4, 5, 34, 9, -4},
     {65, 75, -43, 43, 8, 32, 93}};

    int maxi = 0;
    for (int i = 0; i < 3; ++i) maxi = max(maxi, (int)*max_element(M[i].begin(), M[i].end()));

    cout << maxi << endl;
}

出力

94

参考

std::max_element - cppreference.com