#include <iostream.h>
#include <list>
#include <algorithm>
#include <string>using namespace std;double extreme( list<double>& array )
{
double min, max;
if(array.empty())
cout << "容器为空,请存入数据。" << endl;
else
{
    sort(array.begin(), array.end());     min=*array.begin();
     max=*array.end(); 
cout << "需要容器的最小值请按1,需要容器的最大值请按2" << endl; int m;
cin >> m; if(m=1)
return min;
else
return max;
}

}void main()
{
list<double> a;
a.push_back(1.1);
a.push_back(1.3);
a.push_back(3.4);
a.push_back(4.6);
a.push_back(5.2);
a.push_back(6.0);
a.push_back(6.9);

 extreme(a);
 list<double> b;
 extreme(b);}

解决方案 »

  1.   

    max=*array.end();end不是array列表里的项,应该取end的前一位
      

  2.   

    最主要list取最后第二项不怎么好取啊,有什么办法吗?谢谢啦
      

  3.   

      min=*array.begin();
      list<double>::const_iterator end;
      end = array.end();
      end--;
      max=*(end) ;
      

  4.   

    double min, max;
    int *end;
    if(array.empty())
    cout << "容器为空,请存入数据。" << endl;
    else
    {
        sort(array.begin(), array.end()); min=*array.begin();        end = array.end();
            end--;
            max=*(end); cout << "需要容器的最小值请按1,需要容器的最大值请按2" << endl;
    error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class std::list<double,class std::allocator<double> >::iterator' (or there is no acceptable conversion)
    请问这个错误如何解决啊
      

  5.   

    // int *end 改成 list<double>::const_iterator end;
      

  6.   

    我取了前一位,不知为什么还是有错误
    #include <iostream>
    #include <list>
    #include <algorithm>
    #include <string>using namespace std;double extreme( list<double>& array )
    {
    double min, max;
    list<double>::const_iterator end; if(array.empty())
    cout << "容器为空,请存入数据。" << endl;
    else
    {
        sort(array.begin(), array.end()); min=*array.begin();        end = array.end();
            end--;
            max=*(end); cout << "需要容器的最小值请按1,需要容器的最大值请按2" << endl; int m;
    cin >> m; if(m=1)
    return min;
    else
    return max;
    }

    }void main()
    {
    list<double> a;
    a.push_back(1.1);
    a.push_back(1.3);
    a.push_back(3.4);
    a.push_back(4.6);
    a.push_back(5.2);
    a.push_back(6.0);
    a.push_back(6.9);

     extreme(a);
     list<double> b;
     extreme(b);}
      

  7.   

    error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class std::list<double,class std::allocator<double> >::const_iterator' (or there is no acceptable conversi
    end = array.end();错误指在这排,好像不能直接这样赋值