2017-12-10 10 views
-1

の各列の最大要素を検索し、これは2次元マトリクスにおける第i行の最大要素[n]は[m]を求めるための2-Dアレイ

int t= *max_element(matrix[i],matrix[i]+m); 

作動されるが、私はないです同じ方法でi番目の列のmax要素を見つける方法を取得します。

+0

行列は行優先形式で格納されているようです。つまり、 'martix [i]'は 'i'番目の行を返します。だから、あなたは行列の幅であるストライドをintruduceしなければならず、最大値を探す必要があります。要素 –

+0

また、検証するためのサンプルコードを提供することは非常に役に立ちます –

答えて

0

行のstd::max_element作品は非常に単純である理由:ポインタポイントを行の最初の要素との背後にあるポインタポイントに:一つは同様にポインタを渡すかもしれないので、アルゴリズムは、範囲を指定する前方イテレータを受け付け最後のもの行の要素はメモリ内で連続的なブロックを形成するので、ポインタによるアプローチはうまく機能します。

一方、列要素がメモリ内に連続ブロックを形成しないのと同じ方法で列要素にstd::max_elementを使用する方法はありません。

最も自然な方法は、単純なサイクルを書くだけで、STLアルゴリズムは使用しません。

関連する問題