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’ 被解析为非类型,但实例化却产生了一个类型
展开
 我来答
编程_高手
2013-07-03 · TA获得超过103个赞
知道答主
回答量:83
采纳率:100%
帮助的人:88.3万
展开全部
上面的错误式iter没有定义

改为
vector<T>::iterator iter;

而且头文件最好这么写
#include<iostream>
#include<vector>
using namespace std;
追问
请看我的补充问题,你的方法试了也不行
追答
你能把整个代码都发出来吗?
QString 这是c++ 还是Qt 啊

你要不加我QQ,我帮你调试好
1740311979
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式