书上的习题,怎么用VS2005编译有错~
我全按照书上的操作,但还是有错
希望大家给出原因!
//median.h
#ifndef MEDIAN_H
#define MEDIAN_H
#include <vector>
#include <algorithm>
using std::vector;
template <typename T>
bool median(const vector <T> &,T &);
#include "median.cpp "
#endif
//median.cpp
template <typename T>
bool median(const vector <T> &c,T &m)
{
vector <T> temp(c);
if( temp.size()%2==0 )
{
return false;
}
else
{
sort(temp.begin(),temp.end());
vector <T> ::size_type index=temp.size()/2;
if( ( temp[index] < temp[index+1] )&&( temp[index]> temp[index-1] ) )
{
m=temp[index];
return true;
}
else
{
return false;
}
}
}
//template.cpp
#include "median.cpp "
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
int ia[]={3,8,1,5,7,9,0};
vector <int> ivec( ia,7 );
int m;
if( median(ivec,m) )
{
cout < < "Median: " < < m < <endl;
}
else
{
cout < < "No median " < < endl;
}
system( "pause ");
return 0;
}
[解决办法]
vector <int> ivec( ia,ia+7 );
[解决办法]
//median.h
#ifndef MEDIAN_H
#define MEDIAN_H
#include <vector>
#include <algorithm>
using std::vector;
template <typename T>
bool median(const vector <T> &,T &);
#endif
#include "median.h "
//median.cpp
template <typename T>
bool median(const vector <T> &c,T &m)
{
vector <T> temp(c);
if( temp.size()%2==0 )
{
return false;
}
else
{
sort(temp.begin(),temp.end());
vector <T> ::size_type index=temp.size()/2;
if( ( temp[index] < temp[index+1] )&&( temp[index]> temp[index-1] ) )
{
m=temp[index];
return true;
}
else
{
return false;
}
}
}
//template.cpp
#include "median.h "
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
int ia[]={3,8,1,5,7,9,0};
vector <int> ivec( ia,ia+7 );
int m;
if( median(ivec,m) )
{
cout < < "Median: " < < m < <endl;
}
else
{
cout < < "No median " < < endl;
}
system( "pause ");
return 0;
[解决办法]
第一,你没说你遇到啥错,在哪一行
第二,别人给你的回复你没试一试。