2013-04-10 84 views
-1

我有以下模板类。模板类中的迭代器

template <typename _Type, typename _Comparator = equal_to<_Type> > 
class CSearch 
{ 
... 
}; 

它应该存储STL的东西,如列表,集或字符串。 我存储在私有类成员的所有元素(例如字符串):

map<int,_Type> seqs; 

现在我想用迭代器,但与< _Type> ::为const_iterator问题。

template <typename _Type, typename _Comparator> 
void CSearch<_Type,_Comparator>::Foo1(int id, const _Type & needle) 
{ 
seqs.insert(make_pair(id,needle)); 

for(_Type::const_iterator it=seqs[0].begin();it!=seqs[0].end();it++) 
cout<<*it<<" "; 

cout<<endl; 
} 

或类比

for(map<int,_Type>::const_iterator it=seqs.begin();it!=seqs.end();it++) 
cout<<*it<<" "; 
+0

“但存在问题<_Type> :: const_iterator” - *什么问题?* – Xeo 2013-04-10 11:15:24

+0

“有问题”。大。幻想探索它?然后解释给我们看?否则,伙计,恐怕你只是一个[_help vampire_](http://slash7.com/2006/12/22/vampires/)! – 2013-04-10 11:15:29

+0

可能重复的[一些问题,我真的不能打扰](http://stackoverflow.com) – 2013-04-10 11:16:14

回答

1

<_Type>::const_iterator是一个依赖型。

改为将其作为typename <_Type>::const_iterator