请教这个函数模板为什么不能这样使用
请问这个函数模板为什么不能这样使用?
代码如下,
#include <iostream>
#include <cstdlib>
#include <list>
using namespace std;
template <typename T>
void print(const list <T> &_tlist )
{
list <T> ::const_iterator ibeg=_tlist.begin();//在编译的时候,就是这句不能通过
for(;ibeg!=_tlist.end();ibeg++){
cout < <*ibeg < < ' ';
}
system( "PAUSE ");
cout < < endl;
return;
}
int main()
{
int a[]={2,3,6,9,13};
list <int> _ilist(a,a+5);
print(_ilist);
}
请问为什么list <T> ::const_iterator不能被识别?
------解决方案--------------------
试下把
list <T> ::const_iterator ibeg=_tlist.begin();
换成
typename list <T> ::const_iterator ibeg=_tlist.begin();
代码如下,
#include <iostream>
#include <cstdlib>
#include <list>
using namespace std;
template <typename T>
void print(const list <T> &_tlist )
{
list <T> ::const_iterator ibeg=_tlist.begin();//在编译的时候,就是这句不能通过
for(;ibeg!=_tlist.end();ibeg++){
cout < <*ibeg < < ' ';
}
system( "PAUSE ");
cout < < endl;
return;
}
int main()
{
int a[]={2,3,6,9,13};
list <int> _ilist(a,a+5);
print(_ilist);
}
请问为什么list <T> ::const_iterator不能被识别?
------解决方案--------------------
试下把
list <T> ::const_iterator ibeg=_tlist.begin();
换成
typename list <T> ::const_iterator ibeg=_tlist.begin();