请教这段程序错在哪里

请问这段程序错在哪里?#includeiostreamusingnamespacestdtemplate classElemTypeElemTypemin1(const

请问这段程序错在哪里?
#include   <iostream>
using   namespace   std;      

template <class   ElemType>
ElemType   min1(const   vector <ElemType>   &vec)
{
ElemType   min;
if(vec.size()> =1)
min   =   vec[0]   ;
else
throw   "Empty   Vector "
for(int   ix   =   0;   ix   <vec.size();   ix++)
{
if(vec[ix] <min)
min   =   vec[ix]   ;
}
return   min;
}

template   <class     ElemType>
ElemType   min2(const   vector <ElemType>   &vec)       //求最小值
{
ElemType   min;
vector <ElemType> ::iterator   iter   =   vec.begin();
if(iter <vec.end())
min   =   vec.begin();
else
throw   "Empty   Vector ";

for(int   i   =   0;   i <vec.begin();   i++,   iter++)
{
if(*iter <min)
min   =   *iter;  
}

return   min;
}
void   main()
{
int   array[]   =   {1,3,2,5,4};
vector <   int   >   vec(array,   array+5);                                            
vector <   int   >   vec2(vec);                                  

int   min;  

min   =   min1(vec);
cout < <min < <endl;

min   =   min2(vec2);
cout < <min < <endl;
}

这是求最小值的两个函数,可是编译有错,说是vec是一个undeclared   identifier


不这吨是为什么,我这是模仿c++   primer   中的练习做的,

请高手指教!

[解决办法]
楼主,你的错误很多~
加上#include <vector>
throw "Empty Vector "这个拿来干吗?你没有异常处理...
还有些错误,这里不能明确说出来
好好看书