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