c++模板问题: vector<T>::iterator iter;
代码如下:template<typenameT>voidprintVecValue(vector<T>T_vec,QStringstr){intk=0;std::vect...
代码如下:
template <typename T>
void printVecValue(vector<T> T_vec, QString str)
{
int k = 0;
std::vector<T>::iterator iter;
iter = T_vec.begin();
for (; iter != T_vec.end(); ++iter)
{
cout << str.toLocal8Bit().data() << "[" << k << "] = " << *iter <<endl;
k++;
}
}
但是编译报错:
In function ‘void printVecValue(std::vector<T, std::allocator<_CharT> >, QString)’:
mainwindow.cpp:3140: 错误:expected `;' before ‘iter’
mainwindow.cpp:3141: 错误:‘iter’ 在此作用域中尚未声明
make: *** [linux/.tmp/mainwindow.o] 错误 1
求解?为什么呢
我照你的写了,也不对。
错误信息:
In function ‘void printVecValue(std::vector<T, std::allocator<_CharT> >, QString)’:
mainwindow.cpp:175: 错误:expected `;' before ‘iter’
mainwindow.cpp: In function ‘void printVecValue(std::vector<T, std::allocator<_CharT> >, QString) [with T = int]’:
mainwindow.cpp:2726: instantiated from here
mainwindow.cpp:175: 错误:依赖名 ‘std::vector<T,std::allocator<_CharT> >::iterator’ 被解析为非类型,但实例化却产生了一个类型 展开
template <typename T>
void printVecValue(vector<T> T_vec, QString str)
{
int k = 0;
std::vector<T>::iterator iter;
iter = T_vec.begin();
for (; iter != T_vec.end(); ++iter)
{
cout << str.toLocal8Bit().data() << "[" << k << "] = " << *iter <<endl;
k++;
}
}
但是编译报错:
In function ‘void printVecValue(std::vector<T, std::allocator<_CharT> >, QString)’:
mainwindow.cpp:3140: 错误:expected `;' before ‘iter’
mainwindow.cpp:3141: 错误:‘iter’ 在此作用域中尚未声明
make: *** [linux/.tmp/mainwindow.o] 错误 1
求解?为什么呢
我照你的写了,也不对。
错误信息:
In function ‘void printVecValue(std::vector<T, std::allocator<_CharT> >, QString)’:
mainwindow.cpp:175: 错误:expected `;' before ‘iter’
mainwindow.cpp: In function ‘void printVecValue(std::vector<T, std::allocator<_CharT> >, QString) [with T = int]’:
mainwindow.cpp:2726: instantiated from here
mainwindow.cpp:175: 错误:依赖名 ‘std::vector<T,std::allocator<_CharT> >::iterator’ 被解析为非类型,但实例化却产生了一个类型 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询