注册 登录
编程论坛 C++教室

[求助] 请大家帮助 编译不能通过 提示 expected `;' before "iter"

wxa6687 发布于 2007-08-18 22:12, 1006 次点击
请大家帮助 编译不能通过 提示 expected `;' before "iter" 谢谢了!!!


#include <iostream>
#include <cstdlib>
#include <vector>

using namespace std;
template <class elemtype>

elemtype min( const vector<elemtype> &vec)
{ elemtype temp=vec[0];
for( vector<elemtype>::iterator iter = vec.begin();iter!=vec.end();iter++)
if(temp>*p)
temp=*p;
return temp;
}

int main() {
int ia[]={15,5,13,25,17,99,102,56,18,13,25};
vector<int>vi(ia,ia+11);
cout<<min(vi);
system("pause");
}

5 回复
#2
aipb20072007-08-18 22:33

其他先不说 p哪里来的

[此贴子已经被作者于2007-8-18 22:37:33编辑过]

#3
wxa66872007-08-19 19:53
不好意思,改过以后还是编译不能通过。还是提示 expected `;' before "p"




#include <iostream>
#include <cstdlib>
#include <vector>

using namespace std;
template <class elemtype>

elemtype min( const vector<elemtype> &vec)
{ elemtype temp=vec[0];
for( vector<elemtype>::iterator p = vec.begin();p!=vec.end();p++)
if(temp>*p)
temp=*p;
return temp;
}

int main() {
int ia[]={15,5,13,25,17,99,102,56,18,13,25};
vector<int>vi(ia,ia+11);
cout<<min(vi);
system("pause");
}

#4
天下第二刀2007-08-19 20:48
elemtype min( const vector<elemtype> &vec) // 不要 const
#5
aipb20072007-08-19 21:17
LS说了其一

vector<elemtype>::iterator

改成

typename vector<elemtype>::iterator

指定这是一个类型而非值

#6
wxa66872007-08-20 00:21
谢谢楼上二位,通过了。 请问楼上vector<elemtype>::iterator不是在vector类里已经被typedef定义过了吗,为什么编译器还不认 识它呢! 另外如果不取掉elemtype min( const vector<elemtype> &vec)中的const 是不是要把vector类中iterator定义改为const就好了。 请多指教
1