#include <iostream>
#include <list>
#include <algorithm>using namespace std;double median( const list<double>& array )
{
sort (array.begin(), array.end());
int number=array.size();
double middle;
if(number%2==0)
{
list<double>::iterator iter=array.begin();
int n=number/2;
for(int i=0; i<n; i++)
iter++;
double t1=*iter;
iter++;
double t2=*iter;
middle=(t1+t2)/2;
} else
{
list<double>::iterator iter=array.begin();
int n=number/2;
for(int i=0; i<n; i++)
iter++;
middle=*iter;
} return middle;
}
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);
median(a);}
#include <list>
#include <algorithm>using namespace std;double median( const list<double>& array )
{
sort (array.begin(), array.end());
int number=array.size();
double middle;
if(number%2==0)
{
list<double>::iterator iter=array.begin();
int n=number/2;
for(int i=0; i<n; i++)
iter++;
double t1=*iter;
iter++;
double t2=*iter;
middle=(t1+t2)/2;
} else
{
list<double>::iterator iter=array.begin();
int n=number/2;
for(int i=0; i<n; i++)
iter++;
middle=*iter;
} return middle;
}
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);
median(a);}
{
list<double>::iterator iter=array.begin();
int n=number/2;
//多循坏了一次,这时iter = array.begin();
for(int i=0; i<n - 1; i++)
iter++; // i = 0, iter = array.begin + 1;
double t1=*iter;
iter++;
double t2=*iter;
middle=(t1+t2)/2;
}
编译有错误,请问怎么解决啊?找了半天也不知道为什么
list<double>::const_iterator iter=array.begin();