2011-02-09 22 views
0

ベクトルとイテレータを使用して行列を作成しましたが、どのようにして最大値と最小値を見つけることができますか?私はそれが可能であるか、それを介して最大値と最小値を見つけたい最大値と最小値?

vector<int> > matrixes(10); 
typedef std::vector<std::vector<int> >::iterator it; 

it rows = matrixes.begin(); 
if (rows->size() == 10) 
++rows; 
rows->push_back(res); 

} 

for(size_t q=0; q < matrixes.size(); ++q) 
{ 
    for(size_t r=0; q < matrixes[q].size(); ++r) 
    cout << matrixes[q][r] << " "; 
    cout << endl; 
} 

:それはのようなものでしょうか?

+3

はこの宿題ですか? –

+1

昨日この質問は表示されませんでしたか?それを見つけてdupとして閉じてください。 – CashCow

+1

[C++の行列の最大、最小、平均を見つける](http://stackoverflow.com/questions/4935630/find-maximum-minimum-average-of-a) -matrix-in-c) – CashCow

答えて

0

最大値と最小値を保持するために2つの変数を追加するだけです。 表示する部分を更新します。

vector<int> > matrixes(10); 
typedef std::vector<std::vector<int> >::iterator it; 

it rows = matrixes.begin(); 

int maxVal,minVal; 

if (matrixes.size() > 0 && matrixes[0].size() > 0) 
maxVal = minVal = matrixes[0][0]; 

for(size_t q=0; q < matrixes.size(); ++q) 
{ 
    for(size_t r=0; q < matrixes[q].size(); ++r) 
    {   
    cout << matrixes[q][r] << " "; 
    cout << endl; 
    // update min, max here 
    maxVal= maxVal<matrixes[q][r]?matrixes[q][r]:maxVal; 
    minVal= minVal>matrixes[q][r]?matrixes[q][r]:minVal; 
    } 
} 
+0

ここに表示されます:cout << matrixes [q] [r] << ""; – ellen8998

+0

ありがとうございます。この行列の値の標準偏差を見つけることも可能ですか? – ellen8998

+0

はい、それを得ることができます。ちょうど平均を見つけて、各要素を四角形の違いを得るためにループさせて、和の根を見つけます。 –

4

STLにstd::max_elementstd::min_elementを使用してください。

+0

これらの使い方について少し詳しく説明できますか?私がC++で新しくなったので、 – ellen8998

+0

イテレータ、ベクトル、行列でそれらを使用しますか? – ellen8998

+0

これらの2つの関数を使用するのは、初心者のために少し複雑です(私はellen8998がC++に新しいと仮定しています)。 –

0
std::sort(matrixes.begin(), matrixes.end()); 

ベクトルの最初の要素が最も小さくなり、最後の要素が最大になります。あなたがのstd ::ベクトルを持っている場合は

+0

行列はベクトルそのものです。行列をどのようにソートするのですか? –

2

、あなたは

std::vector<int> my_vector; 
//Populate vector 
int max = std::max_element(my_vector.begin(), my_vector.end()); 

the referenceを参照してください行うことができます。

関連する問題