最大值和最小值?

最大值和最小值?

问题描述:

我已经做了一个矩阵使用向量和迭代器,我怎么能找到它的最大值和最小值。它是这样的:最大值和最小值?

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

只需添加两个变量来保存最大值和最小值。 更新显示它的部分。

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; 
    } 
} 

在STL中使用std::max_elementstd::min_element

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

矢量中的第一个元素最少,最后一个元素最大。

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

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

the reference