2011-02-09 308 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

正在做作業嗎? – 2011-02-09 12:12:18

+1

昨天我們沒有看到這個問題嗎?找到它並關閉作爲複製... – CashCow 2011-02-09 12:24:53

+1

[在C++中查找最大,最小,平均矩陣]的可能重複(http://stackoverflow.com/questions/4935630/find-maximum-minimum-average-of-a -matrix-in-c) – CashCow 2011-02-09 12:26:11

回答

0

只需添加兩個變量來保存最大值和最小值。 更新顯示它的部分。

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
std::sort(matrixes.begin(), matrixes.end()); 

矢量中的第一個元素最少,最後一個元素最大。

2

如果你有一個std :: vector的,你可以做

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

the reference

相關問題