一个有关c++模板的有关问题

一个有关c++模板的问题template typename Tvoid test_func(vectorT vecArg){vectorT::iterator iter

一个有关c++模板的问题

template <typename T>
void test_func(vector<T> vecArg){
  vector<T>::iterator iter;
   
  for (iter = vecArg.begin(); iter < vecArg.end(); iter++)
  {
  cout << *iter << endl;
  }
}

编译提示:
welcome.cc: In function `void test_func(std::vector<T, std::allocator<_CharT> >)':
welcome.cc:40: error: expected `;' before "iter"
welcome.cc:42: error: `iter' undeclared (first use this function)

换成下面就可以了:


template <typename T>
void test_func(vector<T> vecArg){
   
  for (int i = 0; i < vecArg.size(); i++) {
  cout << vecArg[i] << endl;
  }
}

我想知道上面出错的源因??

[解决办法]
vector<T>::iterator iter;
改成
typename vector<T>::iterator iter;
[解决办法]
typename vector<T>::iterator iter;

[解决办法]

探讨
vector<T>::iterator iter;
改成
typename vector<T>::iterator iter;