C++泛型指针问题,函数内部使用泛型指针也要先定义类型吗?不太懂

template <typename elemType>
void display(const vector<elemType> &vec,ostream &os)
{
    vector<elemType>::const_iterator iter=vec.begin();
    vector<elemType>::const_iterator end_it=vec.end();
    for(;iter!=end_it;++iter)
    os<<*iter<<' ';
    os<<endl;
}

运行的时候提示
error:need 'typename' before 'std::vector::iterator' because 'std::vector' is a dependent scope
vector::iterator iter1;

这个是啥问题啊,我照着书上敲的。

vector<elemType>::const_iterator<elemType>