一个有关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;
[解决办法]
