最大值和最小值?

时间:2011-02-09 12:10:54

标签: c++

我使用vector和iterator创建了一个矩阵,如何从中找到最大值和最小值。它类似于:

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

我希望通过它找到最大值和最小值,怎么可能?

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

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

请参阅the reference

答案 2 :(得分: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;
    } 
}

答案 3 :(得分:0)

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

向量中的第一个元素将是最小的,最后一个元素将是最大的。